提问人:okutane 提问时间:2/19/2009 更新时间:2/19/2009 访问量:351
遍历大小相等的子字符串
Iterating over substrings of equal size
答:
1赞
Chuck
2/19/2009
#1
也许我不明白你的问题,但是在 Ruby 中,字符和 1 个字符的字符串之间没有区别。
'hello world'.each_char {|c| puts "substring is #{c}"}
评论
0赞
wfarr
2/19/2009
呵呵,正要说同样的话,但我的室友分散了我的注意力。=)
0赞
womble
2/19/2009
是的,有区别;“xyzzy”[0] => 120
0赞
Dave Ray
2/19/2009
在 1.9.1 中,这将起作用。在早期版本中,each_char不起作用,chars 是 ints。
0赞
womble
2/19/2009
@Dave 1.8.7 也有 String#each_char。
0赞
Chuck
2/19/2009
@wombie: 1. 从 Ruby 1.9 开始,情况就不再如此了 2.这仍然不意味着一个字符与一个字符的字符串不同——只是 String#[] 用于返回一个 Fixnum。你必须执行 “xyzzy”[0].chr 才能获得合适的字符——这是一个单字符字符串!
7赞
womble
2/19/2009
#2
"xyzzy".split(//) => ["x", "y", "z", "z", "y"]
3赞
Dave Ray
2/19/2009
#3
在 Ruby 1.9(和 1.8.7)中,你可以使用 each_char 来可靠地迭代字符串的字符,包括正确处理多字节字符和其他东西。在早期版本中,each_char不存在,索引将返回字节码而不是单个字符字符串。在这种情况下,您可以使用
"abcdefg".split(//u)
这将以 UTF-8 感知方式拆分字符串。
这里有一些很好的讨论。
评论
0赞
Chuck
2/19/2009
要在 1.9 之前的 Ruby 中索引单个字符,可以执行 “hello”[0].chr 或 “hello”[0,1]。
0赞
Dave Ray
2/19/2009
只要它们不是多字节:)
下一个:切片 NURBS 曲面
评论