我正在尝试清理所有非字符字符串,将其缩小,并比较string.reverse
和string
本身。
def palindrome?
if self.reverse.gsub(/\W/, "").downcase == self
return true
end
end
为什么会出现以下错误?我应该怎样处理downcase
方法?
NameError:未定义的局部变量或main:Object
的方法`downcase'
答案 0 :(得分:0)
downcase
在String
上定义。尝试:
class String
def palindrome?
if self.reverse.gsub(/\W/, "").downcase == self
true
else
false
end
end
end
"radar".palindrome? # => true
"hi".palindrome? # => false
但是,要注意猴子修补像String
这样众所周知的课程可能会让你完全不知所措。您可以创建String
的子类来提供palindrome?
方法,而不是上述方法。