簡體   English   中英

在Ruby中將字符串拆分為數組

[英]Split string looking as array to array in Ruby

我有字符串["10000", "10001"] (請不要問為什么它是字符串,我正在糾正一個家伙之后的錯誤...),現在我遇到了將每個數字拆分為單獨項目的問題,例如我想使用類似[10000, 10001]數組,但是編寫適當的RegExp時遇到了很大的問題。 現在我正在這樣做:

items.gsub(/[^\d]/, '').scan(/./).each do |collection_id|
  my code here
end

可以使用1位數的ID,但不能使用多:-(.。能幫我嗎?

string = '["10000", "10001"]'
string.scan(/\d+/).map(&:to_i)
# => [10000, 10001] 

說明

.scan(/d+/)方法返回一個僅包含數字的所有字符塊的數組:

string.scan(/\d+/)
# => ["10000", "10001"]

.map(&:to_i)在結果數組中的每個元素上執行方法.to_i ,並根據結果創建一個新數組。

這是我使用YAML嘗試:

2.1.0 :001 > string = '["10000", "10001"]'
 => "[\"10000\", \"10001\"]" 
2.1.0 :002 > require 'yaml'
 => true 
2.1.0 :003 > YAML.load(string).map(&:to_i)
 => [10000, 10001] 

您可以嘗試以下方法:

"[\"10000\", \"10001\"]".gsub(/\[|\]|"/, '').split(",").map{ |s| s.to_i }

它:
1)用空字符串替換字符[,]和“。
2)在逗號上分割結果字符串
3)將字符串映射為整數並返回結果數組

暫無
暫無

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

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