我想从分数列表中获取一个数字,例如"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
内。
答案 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
。