Ruby String

单引号和双引号的区别

单引号,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')

转载于:https://www.cnblogs.com/voctrals/p/4046376.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值