我试图弄清楚如何使用ruby来检查一个元素是否属于一个数组。我正在从一个文件(比如demo.txt)中读取,每个行中都有逗号分隔的对。我将这两对连接起来并将其推入一个数组中。稍后我需要检查特定值是否属于该数组。我可以看到数组已成功填充,但第二次检查不成功,即它无法在数组中找到该元素。 '我的demo.txt'如下
a, b
c, d
ruby代码如下
array = Array.new
File.readlines('demo.txt').each do |line|
line.slice! ", "
array.push line
end
array.each do|d|
puts d
end
if array.include? 'ab'
puts "correct" #this is not printed
end
如何检查数组是否包含元素' ab'?
答案 0 :(得分:1)
您的数组中有ab\n
。
而不是
array.each do|d|
puts d
end
使用inspect来检查值,
p array
#=> ["ab\n", "cd"]
要解决此问题,请在chomp
line
File.readlines('b.txt').each do |line|
line = line.chomp
...
end
答案 1 :(得分:-1)
替换此
if array.include? 'ab'
puts "correct"
end
这一个
if array.find 'ab'
puts "correct"
end
解决了这个问题。