分割字符串以获得数字

时间:2018-12-05 18:09:20

标签: ruby

我想从分数列表中获取一个数字,例如"Score:5""Score:10"

我找不到一种方法来获取数字并将其转换为整数,因此可以将其用于数组。有帮助吗?

以下我的代码寻找包含数字的分数

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 :(得分:4)

假设您的数组是

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"

现在打印数组,输出仅包含分数。

答案 1 :(得分:2)

您可以只拆分:字符吗?像这样:

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

然后,如果您需要将其作为整数,则可以执行score.to_i