我如何在 Ruby 中将文件中的字符串读取到数组中,并且只读取并保存在数组中,直到我得到某个标记(例如“:”)并停止读取?
任何帮助将不胜感激 =)
例如:
10.199.198.10:111 test/testing/testing (EST-08532522)
10.199.198.12:111 test/testing/testing (EST-08532522)
10.199.198.13:111 test/testing/testing (EST-08532522)
应该只读取以下内容并包含在数组中:
10.199.198.10
10.199.198.12
10.199.198.13
最佳答案
这是一个相当微不足道的问题,使用 String#split
:
results = open('a.txt').map { |line| line.split(':')[0] }
p results
输出:
["10.199.198.10", "10.199.198.12", "10.199.198.13"]
String#split
在指定的分隔符处打断一个字符串并返回一个数组;所以 line.split(':')[0]
获取生成的数组的第一个元素。
如果某行中没有 :
,String#split
将返回一个数组,其中只有一个元素是整行。所以如果你需要做更多的错误检查,你可以这样写:
results = []
open('a.txt').each do |line|
results << line.split(':')[0] if line.include? ':'
end
p results
如果行中有 :
字符,它只会将拆分行添加到结果数组。
关于ruby - 从文件读入数组并在 ruby 中找到 ":"时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2697968/