2013-10-30 31 views

回答

10
"abigword".scan(/../) # => ["ab", "ig", "wo", "rd"] 

它也可以處理奇數個字符,如果你想:

"abigwordf".scan(/..?/) # => ["ab", "ig", "wo", "rd", "f"] 
3

兩個非正則表達式版本:

#1: 
p "abigword".chars.each_slice(2).map(&:join) #=> ["ab", "ig", "wo", "rd"] 

#2: 
s, a = "abigword", [] 
a << s.slice!(0,2) until s.empty? 
p a #=> ["ab", "ig", "wo", "rd"] 
+0

更具可讀性一<< S [0..2]直到s.empty? –

+0

在Ruby 1.9和2.0中都適合我。注意「!」。不像切片法,切片!修改字符串,使其更短。 – hirolau

+0

@hirolau:這是對Monk_Code評論的回覆:) –

相關問題