2013-10-16 83 views
-1

我正在清理所有非字詞字符串,使其成爲downcase,並比較string.reversestring本身。爲什麼我會得到NameError?

def palindrome? 
    if self.reverse.gsub(/\W/, "").downcase == self 
    return true 
    end 
end 

爲什麼我會得到以下錯誤?我應該怎麼處理downcase方法?

NameError: undefined local variable or method `downcase' for main:Object

回答

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?方法。

相關問題