2
我有字符串"abigword"
,我想採取陣列["ab", "ig", "wo", "rd"]
。概括來說,給定一個字符串,我想把它的組成字符數組配對成兩個二。什麼是最優雅的Ruby語句來分割一個字符串中的兩個兩個字符?
什麼是最優雅的Ruby方式來做到這一點?
我有字符串"abigword"
,我想採取陣列["ab", "ig", "wo", "rd"]
。概括來說,給定一個字符串,我想把它的組成字符數組配對成兩個二。什麼是最優雅的Ruby語句來分割一個字符串中的兩個兩個字符?
什麼是最優雅的Ruby方式來做到這一點?
"abigword".scan(/../) # => ["ab", "ig", "wo", "rd"]
它也可以處理奇數個字符,如果你想:
"abigwordf".scan(/..?/) # => ["ab", "ig", "wo", "rd", "f"]
兩個非正則表達式版本:
#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"]
更具可讀性一<< S [0..2]直到s.empty? –
在Ruby 1.9和2.0中都適合我。注意「!」。不像切片法,切片!修改字符串,使其更短。 – hirolau
@hirolau:這是對Monk_Code評論的回覆:) –