我如何在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)
Run Code Online (Sandbox Code Playgroud)
应该只读取以下内容并包含在数组中:
10.199.198.10
10.199.198.12
10.199.198.13
Run Code Online (Sandbox Code Playgroud)
Mar*_*off 13
这是一个相当微不足道的问题,使用String#split:
results = open('a.txt').map { |line| line.split(':')[0] }
p results
Run Code Online (Sandbox Code Playgroud)
输出:
["10.199.198.10", "10.199.198.12", "10.199.198.13"]
Run Code Online (Sandbox Code Playgroud)
String#split在指定的分隔符处中断字符串并返回一个数组; 所以line.split(':')[0]获取该生成的数组的第一个元素.
如果有一条没有a的行:,String#split将返回一个包含整个行的单个元素的数组.因此,如果您需要进行更多错误检查,您可以编写如下内容:
results = []
open('a.txt').each do |line|
results << line.split(':')[0] if line.include? ':'
end
p results
Run Code Online (Sandbox Code Playgroud)
如果行中有一个:字符,它只会将分割线添加到结果数组中.
| 归档时间: |
|
| 查看次数: |
5045 次 |
| 最近记录: |