gpt4 book ai didi

ruby - 在一行中逐个读取字符串 - Ruby

转载 作者:数据小太阳 更新时间:2023-10-29 07:49:21 25 4
gpt4 key购买 nike

我有一个输入文本文件“input.txt”,如下所示:

Country Code ID QTY
FR B000X2D 75 130
FR B000X2E 75 150

如何从每行中提取第一、第二和第三个字符串?

此代码将一整行映射到数组的一个字段中:

f = File.open("input.txt", "r")
line_array = []
f.each_line { |line| line_array << line }
f.close
puts line_array[1]

哪些输出:

FR  B000X2D 75 130

此外,如何根据数量将一行分成多行,

max(quantity) = 50 per line

所以输出是:

FR  B000X2D 75 50
FR B000X2D 75 50
FR B000X2D 75 30

最佳答案

如果这是用空格分隔的,应该很容易拆分:

File.readlines('input.txt').map do |line|
country, code, id, qty = line.chomp.split(/\s+/)

[ country, code, id.to_i, qty.to_i ]
end

您还可以轻松地拒绝任何您不想要的行,或者选择您想要的行,此外这有助于剥离标题:

File.readlines('input.txt').reject do |line|
line.match(/\ACountry/i)
end.map do |line|
country, code, id, qty = line.chomp.split(/\s+/)

[ country, code, id.to_i, qty.to_i ]
end.select do |country, code, id, qty|
qty <= 50
end

关于ruby - 在一行中逐个读取字符串 - Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41752944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com