字符串的奇特方法
让我们学习一点有趣的字符串方法。你没必要把它们全都记住,如果你想不起来了只要再回过头翻翻这一页就好。我只是想给你们演示字符串所能做的部分内容。事实上我甚至记不住字符串方法里一半的内容——但这样就挺好,因为网络上有许多相关字符串方法的参考内容,它们已经列出并解释得很清楚了(在指导资料结尾部分我会告诉你们去哪里找到这些资料)。我甚至不想去学会所有的字符串方法,你只需要像在字典中查找每个单词那样就好,正如我依旧能说一口英语而没必要知道英语字典中所有单词……而这样难道不正是字典最主要的作用吗?所以你没必要知道里面的所有方法。
那么,我们头一个字符串方法是反转reverse
,这会将字符串从后向前颠倒过来:
var1 = 'stop'
var2 = 'stressed'
var3 = 'Can you pronounce this sentence backwards?'
puts var1.reverse
puts var2.reverse
puts var3.reverse
puts var1
puts var2
puts var3
正如你所看到的那样,
reverse
并不会将初始的字符串反转,只会作出一个新的字符串反转版本。这就是为什么即使在我们反转后调用var1后,var1依旧是stop
.
另一个字符串方法是长度length
,它是用来告诉我们字符串中字符的数量(包括空格):
puts 'What is your full name?'
name = gets.chomp
puts 'Did you know there are ' + name.length +
' characters in your name, ' + name + '?'
哦哦!有地方出问题了,似乎是在
name= gets.chomp
后面的一行新版Ruby中有行数提示:第3行 ------译者注
你能看出问题吗?可以试试能否解决。
这里的问题是length:输出是数字,但是我们想要的是字符串。足够简单了,我们只需要扔进去一个to_s
:
puts 'What is your full name?'
name = gets.chomp
puts 'Did you know there are ' + name.length.to_s +
' characters in your name, ' + name + '?'
但是我不知道啊!注意:22是我名字中字符的个数,而不是字母的个数。我想我们需要写一个程序,这个程序先单独问你的first,middle,last名字,然后把它们的长度加起来……嘿,为什么不自己写一个呢!去吧,我会在这里等你们的。
你们写出来对应的程序了吧?很好,编程挺好玩得吧?通过后面几个章节的学习后,你将会对你自己能够做到的事很吃惊的。Σ┗(@ロ@;)┛