2011-10-06 40 views
10

後字符串分割成2個部分。例如,我有一些隨機字符串:如何某些位置

str = "26723462345" 

而且我要6個字符後,將其分爲兩部分分開。如何正確執行此操作?

謝謝!

回答

10
part1, part2 = str.slice!(0...6), str 

puts part1 # => 267234 
puts part2 # => 62345 
puts str # => 62345 
+1

我喜歡這個比我的好。雖然我會在結尾添加str = part1 + part2,所以字符串不會更改。 – Yule

+0

那麼如果你想保持'str'不變,那麼你的解決方案就更好了。 –

+0

怎麼樣:str,part1,part2 = str.clone,str.slice!(0..6),str – Yule

0

這兒有你可重複使用的版本:

str  = "26723462345" 
n   = str.length 
boundary = 6 
head  = str.slice(0, boundary) # => "267234" 
tail  = str.slice(boundary, n) # => "62345" 

它還保留了原始字符串,這可能會在稍後在程序中派上用場。

+0

您可以使用'-1'來代替必須獲取字符串的長度。 –

0

作爲一個有趣的答案,怎麼樣:

str.split(/(^.{1,6})/)[1..-1] 

這工作,因爲分裂返回捕捉場小組賽,除了字符串的部件之前和正則表達式之後。

3

最好的辦法海事組織string.scan(/.{6}/)

irb(main)> str 
=> "abcdefghijklmnopqrstuvwxyz" 
irb(main)> str.scan(/.{13}/) 
=> ["abcdefghijklm", "nopqrstuvwxyz"] 
相關問題