在数组中查找字符串中的特定元素

时间:2017-09-04 18:43:58

标签: arrays ruby

我有一个字符串数组,用空格分隔:

[
  "[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 个答案:

答案 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")