将文本文件分解为单独的单词并存储在 Ruby 中的数组中



>我正在尝试读取一个文本文件,然后将其各个单词存储在数组中。但是我找不到根据文字拆分它的方法。

text_file = []
File.open(file, "r") do |f|
  f.lines.each do |line|
    text_file << line.split.map(&:to_s)
  end
end

上面的方法创建一个数组数组,将所有单词存储在数组中的一行中,依此类推。

有没有办法让数组text_file可以容纳所有单词的单个数组?

是的。执行以下任一操作:

text_file.push(*line.split.map(&:to_s))

或:

text_file.concat(line.split.map(&:to_s))
如果你想把

所有的单词都唯一地排序:

text_file = [ ]
File.open(file, "r") do |f|
  f.each_line do |line|
    text_file += line.split
  end
end
text_file.uniq!
text_file.sort!

这不是最佳实现,但它应该有效。为了使它适应更现实的情况,您可能需要使用String#scan来提取更具体的单词,而不是被标点符号或连字符之类的东西绊倒。

修改你的代码,这将完成:

text_file = []
File.open('document.rb', "r") do |f|
  f.each_line do |line|
    arr = line.split(' ')
    arr.each do |word|
      text_file << word
    end  
  end
end

最新更新