-2
我有一個字符串,這是與空格隔開的數組:查找字符串特定數組中的元素
[
"[AT0000 EUR 33.09 32.09 00.0]",
"[AT0001 EUR 32.34 31.00 00.0]",
"[AT0002 EUR 34.23 34.01 00.0]",
]
我想第一,每一行的第2個和第5位。這是如何完成的?
我有一個字符串,這是與空格隔開的數組:查找字符串特定數組中的元素
[
"[AT0000 EUR 33.09 32.09 00.0]",
"[AT0001 EUR 32.34 31.00 00.0]",
"[AT0002 EUR 34.23 34.01 00.0]",
]
我想第一,每一行的第2個和第5位。這是如何完成的?
您可以split
然後用values_at
在一個特定的指數,以獲取值:
array = [
"[AT0000 EUR 33.09 32.09 00.0]",
"[AT0001 EUR 32.34 31.00 00.0]",
"[AT0002 EUR 34.23 34.01 00.0]",
]
results = array.map do |element|
element.split.values_at(0, 1, 4)
end
puts results.inspect
# => [["[AT0000", "EUR", "00.0]"], ["[AT0001", "EUR", "00.0]"], ["[AT0002", "EUR", "00.0]"]]
,如果你不希望開放/末端括號([]
)包括您可以使用它們中的文本,因爲它們是這樣的:
results = array.map do |element|
element[/\[(.*)\]/, 1].split.values_at(0, 1, 4)
end
puts results.inspect
# => [["AT0000", "EUR", "00.0"], ["AT0001", "EUR", "00.0"], ["AT0002", "EUR", "00.0"]]
你想["AT0000", "EUR", "00.0"]
?
這可能是有選擇和with_index:
array = %w[AT0000 EUR 33.09 32.09 00.0]
p array.select.with_index { |_, index| [0,1,4].include?(index) }
# ["AT0000", "EUR", "00.0"]
請編輯以使您的「字符串數組」成爲有效的Ruby對象。請參閱答案以獲取指導。 –