我的第一个ruby测试代码有问题

时间:2012-03-05 09:56:11

标签: ruby-on-rails ruby

我是ruby的新手,并且已经习惯了开发工具。我正在使用irb并且已经运行了我的第一个helloword。也使用cmd提示完成了相同的操作。 我有以下功能,不断返回错误

def palindrome2?(string)
    puts "hello"
    regex = /^[a-zA-Z]/
    string = gsub(regex,'').downcase
    mirror = string.reverse
    reformat == mirror
 end

它一直为main返回一个未定义的方法`gsub':对象错误。我该如何解决这个问题

2 个答案:

答案 0 :(得分:0)

在你的情况下,你忘了在字符串

上调用gsub方法

String Palindrome

class String
 def palindrome?
  self.downcase == reverse.downcase
 end
end

"baB".palindrome? #=> true

答案 1 :(得分:0)

此外,如果未进行任何更改,则string上的gsub方法返回nil。因此,如果你的字符串是一个没有任何无字符的正确单词,例如“fijowejg”,“filsijdf”.gsub(/ [^ a-zA-Z] /,'')将返回nil。之后,无法在nil对象上运行downcase方法。

因此,您无法按此顺序链接方法gsub和downcase。 http://ruby-doc.org/core-1.9.3/String.html#method-i-gsub