单引号和双引号的区别
单引号,hard quotes,仅仅是字符串,ruby不会参与计算
装引号,soft quotes,ruby会对其中的表达式进行计算
特指的是转义字符啥的。。。
双引号中的#{}里的内容是要被ruby运算的,称为内嵌表达式
test_str = "This is a string." print 'this is #{test_str}', "\n" #this is #{test_str} print "this is #{test_str}", "\n" #this is This is a string
%q||与''相同
%Q{}与""相同
<<
print <<"EOB" #<<后面不能有空格 内容 EOB #这里前后都不能有空格
如果想要EOB的前面可以有空格的话,需要修改<<为<<-。
printf,ruby支持printf,跟java或者c中的一样。
符号:
d,对应一个数字,
数字,表示占几位" 123"。
数字前的0,表示占位符用0填充"0123"
+,表示输出数字的正负
number = 123.4 printf("%d\n", number) #=>123 printf("%6d\n", number) #=> 123 printf("%+-6d\n", number) #=>+123 printf("%06d\n", number) #=>000123
s,对应一个字符串
数字,代表应该占几位,8d代表" string",-8d代表"string "
sprintf,用来把printf输出的内容赋给一个string变量的方法
number = 123.4 simple1 = sprintf("%d\n", number) simple2 = sprintf("%6d\n", number) simple3 = sprintf("%+-6d\n", number) simple4 = sprintf("%06d\n", number) p simple1 p simple2 p simple3 p simple4
获取字符串的字节数
size和length方法,返回字符串的字节数
#以下的内容,意义都是一样的
eng_str = "This is a English string.\nHello World!" p eng_str.length() p eng_str.length p eng_str.size() p eng_str.size
判断字符串是否为空
empty?方法
print "empty","\n" if "".empty? #=>empty print "not empty","\n" if !"this".empty? #=>not empty print "space only" if " ".empty? #=>
分割字符串
以特定字符进行分割,split
test_str = "Voctrals;Tlaliu;Galic;VocLou" name_arr = test_str.split(/;/) p name_arr
以字节数进行分割,unpack
#分割形式,a分割字节数a分割字节数... #a*直到最后 test_str = "This is a string for unpack" res_arr = test_str.unpack("a5a3a2a7a4a*") p res_arr
字符串连接
连接字符串,原分串不变,+
str1 = "Hello" str2 = "World" helloworld = str1 + " " + str2 p str1 #=>Hello p str2 #=>World p helloworld #=>Hello World
连接字符串到原有字符串,<<或concat
str1 = "Hello" str2 = "World" str1 << str2 p str1 #=> HelloWorld p str2 #=> World
获取字符串某索引位置上的字符,[n]返回值为该位置的字符的字节码,转换为字符用chr方法
#测试版分为ruby 2.1,以下是相同的 str = "12345abcde" p str[0] #=>1 p str[0].chr #=>1 p str[5] #=>a p str[5].chr #=>a
也支持[n,m]返回值为字符串
字符串相等性比较用==或者!=。
str1 = "hello" str2 = "Hello" p str1 == str2 #=>false p str1 != str2 #=>true
字符串大小的比较,>或<,按照字母顺序比较
处理字符串末尾的换行字符
chop/tʃɑp/,砍掉
chop!,去掉字符串末尾的一个字符
chop,去掉字符串末尾的一个字符,并返回
chomp/tʃɑmp/,格格的咬牙
chomp!,去掉字符串末尾的换行符
chomp,去掉字符串末尾的换行符,并返回
查找字符串
index和rindex(right index),能找找到的时候返回index,不能找到的时候返回值为nil
查看是否存在某个字符串使用include?方法
str = "This is string, a test string." p str.index("string") #=>8,左边第一次出现string时的位置 p str.rindex("string") #=>23,右边第一次出现string时的位置 p str.include?("b") #=>false
字符串相关的方法列表
slice!(n)
slice!(n..m)
slice!(n, length)
concat(other)
s.delete(str)
s.delete!(str)
s.reverse
s.reverse!
s.trip
s.trip!
s.upcase[!]
s.downcase[!]
s.swapcase[!]
s.capitalize[!]
s.tr[!]('a', 'A')
s.tr[!]('a-z', 'A-Z')