当我运行以下代码时,str 是字符串类型:
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