2013年(11)
分类: Python/Ruby
2013-09-11 10:12:43
文本与字符串
一般我们会使用双引号将文本括起来,如 puts “Hello,Word!”,字符串是一组任意长度的文本字符(包括数字、字母、空格、符合)的集合。在Ruby中所有的字符串都是String类
的对象,正如调用字符串的 class方法,如 puts “Hello, Word!”.class
引号只适合于单行文本,如果想包含多行文本,使用%q{文本}的方法,文本的分解符可以使用<>、()或自选两个
分界符如 !和!,如果所引用正文中一旦有!,就会导致这种方法出错,所以要慎重选用!分界符。
如:x = %q{This is a test of the multi line capabilities}
或 x = %q!This is a test of the multi line capabilities!
分界符可用多个字符,
如 irb(main):018:0> x = <
irb(main):020:0" And a second line
irb(main):021:0" END_MY_WORD
=> "This is the string\nAnd a second line\n"
irb(main):022:0> puts x
This is the string
And a second line
=> nil
<< 标记了字符串的开始,后跟所选择的分界符,最后以所选的分界符结束
字符串的表达式
字符串的乘法操作,即将字符串复制多次
如:puts “abc”*5
irb(main):027:0> puts "abc" * 5
abcabcabcabcabc
=> nil
查看字符的ASCII码值,通过puts ?字符
如:puts ?x
irb(main):028:0> puts ?x
120
=> nil
与其相反的是 puts 120.chr 方法,可查看是哪个字符
irb(main):032:0> puts 120.chr
x
=> nil
插写
插写的方法:#{变量}
如:x = "cat"
puts "The #{x} in the hat"
irb(main):034:0> x = "cat"
=> "cat"
irb(main):035:0> puts "The #{x} is in the hat"
The cat is in the hat
=> nil
可通过其它方式实现插写的结果:to_s (将数字转换成字符串)
如:
irb(main):054:0> x = 10
=> 10
irb(main):055:0> y = 20
=> 20
irb(main):056:0> puts x.to_s + " + " + y.to_s + " = " + (x + y).to_s
10 + 20 = 30
=> nil
irb(main):057:0> puts "#{x} + #{y} = #{x + y}"
10 + 20 = 30
=> nil
字符串的方法汇总
+ 连接两个字符串
capitalize 首字母大写 “test”.capitalize
downcase 将所有字母转换成小写 “TEst”.downcase
chop 去掉最后一个字符 “Test”.chop
hash 输出字符串的哈希值
next 将最后一个字符串替换为下一个字符串
reverse 倒序输出字符串
sum 求字符串的ASCII值的和
swapcase 将字符串大小写切换
upcase 字符串全部大写
upcase.reverse 将字符串全部大写并倒序输出
upcase.reverse.next 将字符串全部大写并倒序,且将最后一个字符串替换为下一个字符串
length 取字符串的长度