Разбивая строку, чтобы получить число - PullRequest
0 голосов
/ 05 декабря 2018

Я хочу взять число из списка оценок, например "Score:5" или "Score:10".

Я не могу найти способ взять число и превратить его в int, чтобы я мог использоватьэто для массива.Любая помощь?

Мой следующий код ищет счет, который содержит число

range = 0
array = []
Dir["C:/Users/Cam/Desktop/warmup/Warmup_tally/*"].each do |filename|
  File.open(filename) do |f|
    f.each_line do |line|
      if line.include? "Score"
        puts line.split(':')
        range += 1
        array.push(-0, "#{line}") 
      end
    end
  end
end

, но я хочу только взять это число и поместить его в Array.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Не могли бы вы просто разделить символ :?Примерно так:

prefix, score = "Score:5".split(':')
# => ["Score", "5"]

Тогда вы можете просто сделать score.to_i, если вам нужно, чтобы оно было целым числом.

0 голосов
/ 05 декабря 2018

Давайте предположим, что ваш массив

a=["Score:5","Score:10","Score:11"]

Код

p a.map{|x| x[/\d+/].to_i}

выход

[5, 10, 11]

Обновление

Я взял твой внутренний код и исправил его

if line.include? "Score"
   array.push line[/\d+/].to_i
end

Или

array.push line[/\d+/].to_i if line.include? "Score"

Теперь распечатай массив, вывод содержит только цифры счета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...