1.4字符串Strings
在编程中数值是非常重要的,但是我们也会经常需要处理文本的。在我们阅读文件的字符串,定义标签,或者为新的SketchUp工具添加提示,在我自己写脚本的时候,我会经常使用显示信息在代码的执行过程中。
字符串包括一个或者很多的字符,包括字母,数字,标点符号和特殊字符。在Ruby中一个字符串可以使用双引号或者单引号来宝石,如果是使用双引号的话,Ruby会忽略转义字符(如 \t 是Tab,\n是换行),而是转义显示他们,使用单引号好的情况下会忽略转义字符,例如:”Line1\nLine2″会打印两行,因为\n会转义成换行。’Line1\nLine2’就会直接打印Line1\nLine2,会忽略转义字符。
字符串基础操作
Ruby提供了一些方式来操作字符串,其中两个常用的操作符是+和*,他们是非常容易理解的,+操作符是将两个字符串连接到一起:
“Hello,” + ” world” → Hello, world
*操作符是重复字符串的次数:
“Hello!” * 3 → Hello!Hello!Hello!
子字符串和字符串取值
在编程中一个常用的操作就是通过字符串的位置来获取字符。字符串的位置我们称为索引(index),索引的值是从0到字符的个数减1。一组临近的字符在字符串中称为子字符串,我们可以通过索引的范围来访问的子字符串。我们有两种方式来表示索引的范围。
第一种方式是start..end,表示从start到end的索引值,包括end。
第二种方式start…end,表示从start到end的索引值,不包括end。
通过下面的例子来理解这两种范围的不同:
• 0…4 代表范围为 [0, 1, 2, 3]
• 0..4 代表范围为 [0, 1, 2, 3, 4]
• -5..-3 代表范围为 [–5, –4, –3]
• ‘a’…’e’ 代表范围为 [‘a’, ‘b’, ‘c’, ‘d’]
• ‘a’..’e’ 代表范围为 [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
在Ruby控制台中输入下面的代码
“HelloWorld”[0..2]
“HelloWorld”[0…2]
“HelloWorld”[1..4]
“HelloWorld”[1…4]
返回结果依次是:hel,he,ello,ell
如果索引的数是整数,索引的位置就是从左开始的,如果是负数的话就是从右边开始的,具体的索引值可以参考下图:
下面的命令展示了如何使用负数来获取子字符串;
“HelloWorld”[-10..-6]
“HelloWorld”[-3…-1]
打印结果依次是:Hello,rl
我们还可以使用另外一种获取字符串的方法,形式为[index, length]:
index代表索引的位置,length代表索引的长度也就是个数。在命令行中尝试下面的操作:
“HelloWorld”[3, 4]
“HelloWorld”[0, 5]
“HelloWorld”[-5, 5]
打印结果依次是lowo,Hello,World
1.5 字符串进阶操作
进阶的操作方式是通过字符串后面加上.后面是操作的方法,方法我们在后面的章节会讲到,在这里我们仅仅相信成这是一个特殊的操作符号就可以了。例如length和size都会返回字符串的字符个数,下面的例子展示这两种操作方法,我们可以在Ruby控制台中输入下面代码:
“HelloWorld”.length
“HelloWorld”.size
打印结果依次是:10,10
下面的表格列出了一些字符串的方法,想要产看更多的字符串方法可以访问:http://www.ruby-doc.org/core/classes/String.html
打印字符串
Ruby提供了3中在控制台中打印字符串的方法:puts,print,printf。我们的教程中主要都是使用puts,下面的例子展示了puts的使用:
puts “Number of characters in Hello: ” + “Hello”.length.to_s
打印结果:Number of characters in Hello: 5
“Hello”.length返回整型数值5,在Ruby中,不会总是自动将数值转换成字符串的,在这里我们使用to_s方法,将”Hello”.length转化成字符串5.
(特别注明:本教程转自”一米网校”转载请与原作者联系。)
评论0