public static String reverseString(String str)
{
String a = "";
for (int k= 1; k<str.length(); k++)
{
a = str.substring(k, k+1);
str = a + str.substring(0, k) + str.substring(k+1);
}
return str;
}
public boolean isPalindrome(String str)
{
if(str.equals(reverseString(str)))
{
return true;
}
else
{
return false;
}
}
なぜ上記のコードは常にtrueを返しますか?私はそれが回文であればtrueを返すプログラムをwhileループで作成しようとしています。なぜこのプログラムはtrueを返しますか?
印刷ステートメントを追加したか、デバッガを使用して、どのステップが期待どおりに動作していないかを把握しましたか? – csmckelvey
コードのデバッグを検討しましたか?たとえば、逆転メソッドが実際に動作するかどうかを確認しますか? – EJP
あなたの 'reverseString'メソッドは奇妙に見えます。代わりに 'new StringBuilder(str).reverse()。toString()'を使用してください。それはうまくいくはずです。 – A1m