2009-02-19 62 views
0

我想我的String对象转换为它的1大小的子串(不字符)的可枚举的子串,我怎么能在Ruby中有效地做到这一点?遍历大小相等

回答

7
"xyzzy".split(//) => ["x", "y", "z", "z", "y"] 
1

也许我不明白你的问题,但有一个字符和红宝石1个字符的字符串没有区别。

'hello world'.each_char {|c| puts "substring is #{c}"} 
+0

嘿,正要说相同的,但我的室友分心我。 =) – wfarr 2009-02-19 02:41:50

+0

是的,有区别; “xyzzy”[0] => 120 – womble 2009-02-19 02:43:31

3

在Ruby 1.9(和1.8.7),可以使用each_char超过字符串的字符,包括多字节字符之类的东西妥善处理可靠迭代。在早期版本中,each_char不存在,索引将返回字节代码而不是单个字符串。在这种情况下,您可以使用

"abcdefg".split(//u) 

它将以UTF-8感知的方式拆分字符串。

有一些很好的讨论here