現在、回文を含む文字列が渡されるかどうかによってTrueまたはFalseを返すJESプログラムを作成しています。プログラムは動作しますが、大文字または句読記号が存在すると失敗します。どのように私はそれを働かせることができますか?Jython/JESの大文字
print(ThisPalindrome("racecar"))
>> True
print(ThisPalindrome("Racecar"))
>> False
現在、回文を含む文字列が渡されるかどうかによってTrueまたはFalseを返すJESプログラムを作成しています。プログラムは動作しますが、大文字または句読記号が存在すると失敗します。どのように私はそれを働かせることができますか?Jython/JESの大文字
print(ThisPalindrome("racecar"))
>> True
print(ThisPalindrome("Racecar"))
>> False
大文字の問題を解決するには、チェックでstr.lower()
メソッドを使用してみてください。
def ThisPalindrome(word):
lowercase = word.lower()
reversedOrder = reversed(lowercase)
if lowercase == ''.join(reversedOrder):
return True
else:
return False
理論的には、この関数は関数を破壊しない限り、基本的な句読点でも機能するはずです。 '
などの入力は、破損する可能性があります。
toLowerCase()メソッドは、呼び出し文字列の値を小文字に変換して返します。
replace()メソッドは、パターンの一致の一部またはすべてを置き換えて置換する新しい文字列を返します。先ほど作成したRegExpの1つを使用します。
split()メソッドは、文字列をサブ文字列に分割することにより、Stringオブジェクトを文字列の配列に分割します。
reverse()メソッドは、配列を元の位置に戻します。最初の配列要素が最後になり、最後の配列要素が最初になります。