RUBY:如何将名称从.txt文件传输到预定义变量中的数组中

问题描述 投票:0回答:1

我正在尝试将名称列表从.txt文件传输到Ruby中的表/数组。名称在文件中看起来像这样:

Mandy

萨拉·简

旋律

Ulrika

凯蒂·苏

所以有些名字是一个单词,另外两个是。我有一个变量@names,我想将它们作为数组直接移到该变量中。我还需要计算有多少个名字(我根本无法做到!)。

到目前为止,我有这个:

defreadwordfile(filename)
file = file.open("names.txt","r")
file.each do |line|

contentsArray = []
file.each_line {|line|
contentArray.push line }

@names = contentArray
end

file.close
end

非常感谢我一直在努力使它工作数小时!!!

谢谢,

Petra

ruby
1个回答
0
投票

您可以执行以下操作:

names = IO.foreach("text.txt").with_object([]) do |line,array|
  array << line.strip
end

p names
#=> ["Mandy", "Sarah Jane", "Melody", "Ulrika", "Katy Sue"]

假设每行只有一个名称或名称/姓氏组合。

不确定是您的问题中的格式问题,还是文件中是否有实际的空行。如果有空行,并且您想忽略它们,则可以用以下内容替换第二行:

  array << line.strip unless line.strip == ""

这将忽略任何没有名称/姓氏的行。

© www.soinside.com 2019 - 2024. All rights reserved.