2009-02-19 68 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