第10章 标量对象
使用字符串
Ruby为此提供了两个内建类:String类和Symbol类。它们提供了所有的文本功能。
单引号与双引号字符串的行为特性很不一样。主要区别是单引号字符串不能进行字符串内插:
puts "Two plus two is #{2+2}."
puts 'Two plus two is #{2+2}
输出:
Two plus two is 4.
Two plus two is #{2+2}.
合并两个字符串
"a"+"b"
给一个已有字符串永久性地增加另一个字符串可用<<方法。
str="hi"
str<<"there"
替换字符串的内容,用replace
str="Hi there"
str.replace("Good-bye")
字符串逆转排序
str="hello"
str.reverse
获取字符串
>>"abc"[2]
=>99
如果索引从字符串的右边开始计数:
>>"abc"[-2]
=>99
太空船方法<=>
返回-1表示右边的对象比较大,1表示左边的对象比较大,0表示两个对象相等。
>>"a"<=>"b"
=>-1
>>"b">"a"
=>true
>>"a">"A"
=>true
符号及其用法
可以通过从字面上识别符号,如:
:a
:book
可以通过对字符串调用to_sym方法,以编程的方式创建符号
>>"a".to_sym
=>:a
>>"Converting string to symbol with intern....".intern
=>:"Converting string to symbol with intern...."
用to_s方法将符号转成字符串
>>:a.to_s
=>"a"
符号与字符串的不同点
>>:a.equal?(:a)
=>true
>>"a".equal?("a")
=>false
两个看起来一样的符号是一个对象,这是确切无疑的,但如果说两个看起来一样的字符串是同一个对象,那就错了。
字符串与符号之间一个重要的不同之处是:符号是不可变的;不能对符号的一部分进行增加、删除、或改变。
操作时间和日期的方式
>>d=Date.today
>>puts d
2007-10-20
日期对象可以响应<<方法和>>方法。这两个方法将日期向前或向后调整几个月
puts d<<2
puts d>>5
2007-08-20
2007-12-20
time对象允许基于UNIX风格的格式字符串,实现这个功能的方法叫strftime
>>t.strftime("%m-%d-%Y")
=>"01-17-2006"