“split”的基本用法
Split方法的最基本用法分裂一个由单独字符或字符的静态序列组成的字符串。如果split的第一个变量是一个字符串,那么这个字符串中字符就会被当作一个字符串分隔符使用。但是在逗号分隔的数据中,逗号用来分隔数据,这里的每个字符串成分都被用来分隔数据。
#!/usr/bin/env ruby
str = "foo,bar,baz"
puts str.split(",")
$ ./1.rbfoobarbaz通过正则表达式来增加灵活性
当然,还有一些更容易的方法可以分隔字符串。正则表达式可以为split方法增加灵活性。这里再次拿“foo, bar, baz”。间隔在第一个逗号之后而不是第二个逗号。如果该字符串“,”被当成是分隔符,那么在“baz”字符串的开始处仍然会存在间隔。如果使用“,”字符串,它只与第一个逗号匹配,因为第二个逗号后面没有间隔。其作用还是有限的。
解决这个问题的办法是把正则表达式作为定界符的自变量,而不是使用字符串。正则表达式不仅可以匹配静态序列的字符,对字符的不定量和可选字符都同样起作用。
编写正则表达式
为你的分隔符编写一个正则表达式,第一步就是描述清楚什么是分隔符。在这种情况下,一个逗号后面可能存在一个或多个空格是合理的。这一正则表达式库中存在两个要素:逗号和可选的间隔。间隔会使用* (星号)量词,它表示的意思是“零或更多”。任何在它之前的要素都会匹配零次或若干次。例如,正则表达式/ a * /将匹配序列零或更多“a”字符。
#!/usr/bin/env ruby
str = "foo, bar,baz"
1,符号和字符串,都是ruby中表示文本的方式他们之间是可以通过to_sym 和 to_s 之间来转换的
:username.to_s
username
'username'.to_sym
:username
2, 相同的符号代表的一定是同一个对象,相同的字符串代表的不一定是同一个对象
这个是最大的区别,符号是不可更改的,字符串是可以修改的、
3,性能上,符号更加占优
正是因为符号不可变,而字符串变量必须具有含有修改其类容的功能,所以系统开销比较大,所以一般遇到不需要修改的文本信息时,建议使用符号。
a =“world”a["w"] = w
a["s"] = nil
你可以参考ruby string 的官方文档,基本上string 所有自带的方法都有,并且有例子
http://ruby-doc.org/core-2.1.2/String.html#method-i-match