娃娃鸭学Ruby-11、文本(二)
2、字符字面量
字符前面加一个问号的方式表示单个字符构成的字面量,不需要使用任何形式的引号
?A
?"
??
Ruby 1.8
?A=65
Ruby 1.9
字符是长度为1的字符串
因此或以Unicode码点
3、字符串操作符
+
planet="Earth"
"Hello"+" "+planet # Hello Earth
同Java区别,不会自动转换
在Ruby中,采用字符串内插操作比采用+操作符进行连接更简单。
"Hello planet ##{planet_number}"
<<
<<操作符会将第二个参数添加到第一个参数后面。
greeting="Hello"
greeting<<" "<<"World"
puts greeting # Ouputs "Hello World"
<<操作符也不会进行转换
alphabet="A"
alphabet<<?B #"AB"
alphabet<<67 # "ABC"
alphabet<<256 #error
*
*操作符右侧是一个整数,返回一个字符串,右侧操作数为指定次数
ellipsis='.'*3 # 值 '...'
注意:
a=0
"#{a=a+1} " * 3 # Return "1 1 1 ",not "1 2 3 "
==和!=
<,<=,>,>=
字符比较是大小写敏感
4、访问字符串和子字符串
索引操作符[]
s='hello'; #Ruby 1.8 返回字符
s[0] # h
s[s.length-1] # o
s[-1] # o
s[-2] # 后面一个l
s[-s.length]# s[0]
s[s.length]#nil 没有字符
字符串越界,不抛出异常,只是nil
Ruby 1.9返回的是字符串
s='hello'
s[0] # 'h'
s[s.length-1] #'o'
s[-1] # 'o'
s[-2] # 'l'
Ruby 1.8 右侧可以是一个Ascii字符编码值
Ruby 1.9右侧必须是一个字符串
s[0]=?H
s[-1]=?o
s[s.length]=?!
多个字符串,会增加的。
s="hello"
s[-1]="" # "hell "
s[-1]="p!" # "help!"
s="hello"
s[0,2] #'he'
s[-1,1] # "o"
s[0,0] # " "
s[0,10] #"hello"
s[s.length+1,1]#""
s[0,-1] #nil