代码之家  ›  专栏  ›  技术社区  ›  okutane

在大小相等的子字符串上迭代

  •  0
  • okutane  · 技术社区  · 16 年前

    我想将我的字符串对象转换为它的1大小的子字符串的可枚举(而不是字符),如何在Ruby中有效地做到这一点?

    3 回复  |  直到 16 年前
        1
  •  7
  •   womble    16 年前
    "xyzzy".split(//) => ["x", "y", "z", "z", "y"]
    
        2
  •  3
  •   Dave Ray    16 年前

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

    "abcdefg".split(//u)
    

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

    有一些不错的讨论 here .

        3
  •  1
  •   Chuck    16 年前

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

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