Thursday, October 16, 2008

(12)字符串迭代

Ruby1.8中定义了each方法来在字符串中一行行的迭代,String属于Enumable模块,你可以使用each_byte来字符串中的每一个字符编码,而且通过each_type结合下标[]的方式可以带来更好的性能。
Ruby1.9中String不再是Enumable的了,它明确的定义了3个方法:each_line用于迭代字符串中的每一行,each_char用于迭代字符串中的每一个字符,each_byte用于迭代每一个字节:
s = "¥1000"
s.each_char {|x| print "#{x} " } # 打印"¥ 1 0 0 0". Ruby 1.9
0.upto(s.size-1) {|i| print "#{s[i]} "} # 对于多字节字符串来说,性能更好

No comments: