在Ruby中的String对象持有和操纵的任意序列的一个或多个字节,通常表示人类语言的字符表示。简单的字符串文本括在单引号中,如
'This is a simple Ruby string literal'
如果需要内置一个单引号,单引号的字符串文字,需要在单引号前面加一个反斜杠,Ruby解释器才不认为遇到了终止字符串,如:
'Won\'t you read O\'Reilly\'s book?'
打印结果为:
Won't you read O'Reilly's book?
反斜杠也可以转义另一个反斜杠,这样第二个反斜杠本身不被解释为转义字符
以下是字符串相关功能:
表达式替换
表达式替换是嵌入任何Ruby表达式的值转换成字符串使用的一种手段,可用#{and}替换,如
x,y,z = 12,36,72
puts "The value of x is #{x}."
puts "The sub of x and y is #{x + y}."
puts "The average was #{ (x + y + z)/3 }."
输出如下:
The value of x is 12.
The sub of x and y is 48.
The average was 40.
字符编码方式:
Ruby的默认字符集是ASCll码,字符可能会由单字节表示。如果使用UTF-8或另一种现代字符集,字符可能会以四个字节表示。可以更改字符集使用$KCODE在程序的开始行,像这样:
$KCODE = 'u'
以下是$KCODE可能的值:
code | 描述 |
---|---|
a | ASCLL (default) |
e | EUC |
n | None(same ad ASCll) |
u | UTF-8 |
字符串的内置方法
我们需要有一个String对象实例调用一个String方法。以下的方法来创建String对象的一个实例:
new [String.new(str="")]
这将返回一个新的字符串对象,其中包含str的一个副本。
myStr = String.new("THIS IS TEST")
foo = myStr.downcase
puts "#{foo}"
这将产生以下结果
this is test