Arrays 检查元素是否属于Ruby中的数组
我试图弄清楚如何使用ruby检查元素是否属于数组。我从一个文件(比如demo.txt)中读取,该文件的每一行都有逗号分隔的对。我将这两对连接起来,并将其放入一个数组中。稍后我需要检查特定值是否属于数组。我可以看到数组已成功填充,但第二次检查未成功,即在数组中找不到元素。”我的demo.txt'如下所示Arrays 检查元素是否属于Ruby中的数组,arrays,ruby,Arrays,Ruby,我试图弄清楚如何使用ruby检查元素是否属于数组。我从一个文件(比如demo.txt)中读取,该文件的每一行都有逗号分隔的对。我将这两对连接起来,并将其放入一个数组中。稍后我需要检查特定值是否属于数组。我可以看到数组已成功填充,但第二次检查未成功,即在数组中找不到元素。”我的demo.txt'如下所示 a, b c, d array = Array.new File.readlines('demo.txt').each do |line| line.slice! ", "
a, b
c, d
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
ruby代码如下所示
a, b
c, d
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”?数组中有
ab\n
而不是
array.each do|d|
puts d
end
使用inspect检查值
p array
#=> ["ab\n", "cd"]
要解决此问题,请在
行上使用chomp
File.readlines('b.txt').each do |line|
line = line.chomp
...
end
数组中有ab\n
而不是
array.each do|d|
puts d
end
使用inspect检查值
p array
#=> ["ab\n", "cd"]
要解决此问题,请在行上使用chomp
File.readlines('b.txt').each do |line|
line = line.chomp
...
end
替换这个
if array.include? 'ab'
puts "correct"
end
用这个
if array.find 'ab'
puts "correct"
end
解决此问题。替换此
if array.include? 'ab'
puts "correct"
end
用这个
if array.find 'ab'
puts "correct"
end
解决问题。调试它。查看数组包含的内容您的问题是什么?打印数组时,它将元素显示为“ab”和“cd”。至于您的问题,array.include?“ab'
就是这样做的。调试它。查看数组包含的内容您的问题是什么?打印数组时,它将元素显示为“ab”和“cd”。至于您的问题,array.include?“ab'
就是这样做的。谢谢,现在我看到了问题。更好的做法是将chomp放在阅读行之后:File.readlines('b.txt').map(&:chomp)。每个…
。谢谢,现在我看到了问题。更好的做法是将chomp放在阅读行之后:File.readlines('b.txt').map(&:chomp).每个…
。谢谢。这确实有效。但我更喜欢@Wand Maker给出的答案,因为它会在将新行推到阵列之前剥离新行。谢谢。这确实有效。但我更喜欢@Wand Maker给出的答案,因为它会在将新行推到阵列之前剥离新行。