迭代相同大小的子串

时间:2009-02-19 02:31:44

标签: ruby string slice

我想将我的String对象转换为其1个大小的子串(不是字符串)的Enumerable,我怎么能在Ruby中有效地做到这一点?

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:3)

在Ruby 1.9(和1.8.7)中,您可以使用each_char可靠地迭代字符串的字符,包括正确处理多字节字符和内容。在早期版本中,each_char不存在,索引将返回字节代码而不是单个字符串。在这种情况下,您可以使用

"abcdefg".split(//u)

将以UTF-8识别方式分割字符串。

有一些很好的讨论here

答案 2 :(得分:1)

也许我不理解你的问题,但是Ruby中的一个字符和一个字符串之间没有区别。

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