比较字符串出错?

时间:2013-04-10 20:47:50

标签: ruby string

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

0 个答案:

没有答案