将文件读入每行的字符串

时间:2015-10-05 11:46:59

标签: ruby

我想读入字符串,然后浏览每一行字符串。我有以下内容:

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)

2 个答案:

答案 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