Ruby將字符串像數字一樣處理。我們用單引號('...')或雙引號("...")將它們括起來。單引號和雙引號在某些情況下有不同的作用。一個由雙引號括起來的字符串允許使用轉義字符,就是反斜杠開頭的字符,而且可以用#{}內嵌表達式.而單引號括起來的字符串并不會對字符串作任何解釋。
ruby>?print?"a\nb\nc","\n"
a
b
c
???nil
ruby>?print?'a\nb\n',"\n"
a\nb\nc
???nil
ruby>?"\n"
???"\n"
ruby>?'\n'
???"\\n"
ruby>?"\001"
???"\001"
ruby>?'\001'
???"\\001"
ruby>?"abcd?#{5*3}?efg"
???"abcd?15?efg"
ruby>?var?=?"?abc?"
???"?abc?"
ruby>?"1234#{var}5678"
???"1234?abc?5678"
字符串常用處理有:
串聯:
ruby>?word?=?"fo"?+?"o"
???"foo"
重復:
ruby>?word?=?word?*?2
???"foofoo"
抽取字符(注意:在Ruby里,字符被視為整數):
ruby>?word[0]
???102????????????#?102?is?ASCII?code?of?`f'?
ruby>?word[-1]
???111????????????#?111?is?ASCII?code?of?`o'
(負的索引指從字符串尾算起的偏移量,而不是從串頭.)
提取子串:
ruby>?herb?=?"parsley"
???"parsley"
ruby>?herb[0,1]
???"p"
ruby>?herb[-2,2]
???"ey"
ruby>?herb[0..3]
???"pars"
ruby>?herb[-5..-2]
???"rsle"
檢查相等:
ruby>?"foo"?==?"foo"
???true
ruby>?"foo"?==?"bar"
???false
表達式插補(expression interpolation):
字符串中的#{expression}序列會被替換為expression表達式的值。
ruby>?var?=?"?abc?"
???"?abc?"
ruby>?"1234#{var}5678"
???"1234?abc?5678"