当我运行以下代码,其中str的类型为string:
def self.split(str)
array = Array.new
for i in 0..str.length-1
if str[i].casecmp('a') == 0 || str[i].casecmp(':') == 0
...
end
end
array
end
if __FILE__ == $PROGRAM_NAME
count = 0;
File.readlines('C:/Users/JRQuick/Desktop/while1.test').each do |line|
line = line.strip()
count = count + 1
#CHECKS IF LINE IS COMMENT
if (line.include? '//').equal? false
#CHECKS IF EMPTY LINE
if (line.gsub(" ", "").length != 0)
array = split(line)
print array
end
end
end
end
end
出现此错误:
`block in split': undefined method `[]' for nil:NilClass (NoMethodError)
我们在上面第4行抛出错误,这是在split()中找到的if语句。
我已尝试使用equals()和matches()进行字符串比较,但它们会抛出相同的错误。我也尝试过eql?(),它抛出没有错误但是没有正确比较字符串,总是返回false,即使应该返回true。
除此之外,我确保str [i]永远不会为零,甚至尝试str[i].to_s