我试图读取一个文本文件,然后将它的单个单词存储在一个数组中。但我找不到根据文字分割它的方法。
text_file = []
File.open(file, "r") do |f|
f.lines.each do |line|
text_file << line.split.map(&:to_s)
end
end
上面的方法创建了一个数组数组,它将所有单词存储在一个数组中的一行中,依此类推。
数组text_file
是否可以容纳所有单词的单个数组?
答案 0 :(得分:2)
是。要么:
text_file.push(*line.split.map(&:to_s))
或:
text_file.concat(line.split.map(&:to_s))
答案 1 :(得分:1)
如果你想要所有的单词,唯一的,排序的:
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
来提取更具体的单词,而不是像标点符号或连字符那样被绊倒。
答案 2 :(得分:0)
修改你的代码,这将解决问题:
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