0

当我运行以下代码时,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

4

0 回答 0