我有一个字符串数组,用空格分隔:
[
"[AT0000 EUR 33.09 32.09 00.0]",
"[AT0001 EUR 32.34 31.00 00.0]",
"[AT0002 EUR 34.23 34.01 00.0]",
]
我想获得每一行的第一,第二和第五位置。这是如何完成的?
答案 0 :(得分:3)
您可以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"]]
答案 1 :(得分:2)
您想要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"]
吗?
可以使用select和with_index:
while usernameinput != username:
print("That is the incorrect Username")
usernameinput = input("Please Enter your username: ")
if usernameinput == username:
print("Great job")