我想读入字符串,然后浏览每一行字符串。我有以下内容:
file = File.read('test.txt')
file.each_line { |line|
if line.include?(test)
puts line
end
我收到错误:
`include?': no implicit conversion of Array into String (TypeError)
答案 0 :(得分:5)
File.readlines('test.txt').each do |line|
puts line
end
或者在你的情况下:
File.readlines('test.txt').each do |line|
if line.include? test
puts line
end
end
P.S。 你说你得到错误`include?':没有将Array隐式转换为String(TypeError)
这可能是因为你的test
变量是一个数组而不是一个字符串
重现你的错误:
test = [1,2,3] #a mistake, It should be string, like '12'
File.readlines('test.txt').each do |line|
if line.include? test
puts line
end
end
答案 1 :(得分:0)
test
中的任何内容都需要是一个字符串。现在似乎包含一个数组。根据您对此的要求,您可以通过以下两种方式之一重写代码。
您可以检查test
数组中的任何字符串是否在line
中。
if test.any? {|str| line.include?(str) }
# ...
end
或者,如果您想确保行中必须包含test
中的所有字符串,请使用此
if test.all? {|str| line.include?(str) }
# ...
end