簡體   English   中英

如何在紅寶石中分割x個相等的字符串

[英]How to split a string in x equal pieces in ruby

我在ruby中有一個字符串,如下所示:

str = "AABBCCDDEEFFGGHHIIJJ01020304050607080910"
# 20 letters and 20 numbers in this case

我想把這個分成兩半,我可以這樣做:

str[0, str.length/2]

要么

str.split(0, str.length/2)

之后,我需要使用chars制作數組,但每個元素的長度為2,如下所示:

["AA", "BB", "CC", "DD", "EE", "FF", "GG", "HH", "II", "JJ"],
[01, 02, 03, 04, 05, 06, 07, 08, 09, 10]

問題是,我找不到一種簡潔的方法來轉換這個字符串。 我可以做這樣的事情

arr = []
while str.length > 0 do
  arr << str[0, 1]
  str[0, 1] = ""
end

但我更喜歡像str.split(2)這樣的東西,字符串的長度可能會隨時改變。

這個怎么樣?

str.chars.each_slice(2).map(&:join)

您可以使用掃描方法:

1.9.3p194 :004 > a = 'AABBCCDDEEC'
 => "AABBCCDDEEC" 
1.9.3p194 :005 > a.scan(/.{1,2}/)
 => ["AA", "BB", "CC", "DD", "EE", "C"] 

2.1.0 :642 > "d852".scan(/../) => ["d8", "52"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM