-1

string.reverseすべての非単語文字の文字列をクリーンアップし、小文字にして、それ自体を比較しようとしていstringます。

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

次のエラーが表示されるのはなぜですか? downcaseメソッドはどうすればいいですか?

NameError: main:Object の未定義のローカル変数またはメソッド「downcase」

4

1 に答える 1

0

downcasesで定義され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?

于 2013-10-16T18:33:43.847 に答える