我無法弄清楚我的代碼中的錯誤。我知道有一個,但我不知道它是什麼。我是編碼新手,這只是我的第二個學期,我的教授讓我們跳到本書的最後來學習遞歸,但是在實驗中,本書指定作者希望我們實現其他技能,這些技能將在我們避難的章節中學習到還沒有完成。換句話說,我正在使用我還沒有真正學到的東西,所以我沒有看到這裏的錯誤。任何人都可以弄清楚我做錯了什麼,並解釋它我也會很樂意!謝謝!迴文測試:調試
if (palTest(s.toLowerCase().replaceAll("\\W","")))
System.out.println("\nYour phrase is a palindrome!");
public static boolean palTest(String str)
{
char first = str.charAt(0);
char last = str.charAt(str.length() - 1);
System.out.println(str);
System.out.println(first + " --- " + last);
System.out.println("----------------\n");
if (str.length() <= 2)
return true;
else if (first != last)
return false;
else
return palTest(str.substring(1, str.length()-1));
}
if語句是我對palTest方法的調用。現在這個代碼幾乎適用於我輸入的所有短語。然而,當我進入這個短語: 「Dessertsm我強調」將信米比較信我最後,回到真正說,這句話是一個迴文。
我把一些System.out.println語句放在裏面,這樣我就可以看到到底發生了什麼,下面是打印出來的樣子。
Please enter a phrase you wish to test to discover if it it a palindrome:
dessertsm i stressed
dessertsmistressed
d --- d
----------------
essertsmistresse
e --- e
----------------
ssertsmistress
s --- s
----------------
sertsmistres
s --- s
----------------
ertsmistre
e --- e
----------------
rtsmistr
r --- r
----------------
tsmist
t --- t
----------------
smis
s --- s
----------------
mi
m --- i
----------------
Your phrase is a palindrome!
信米可以用任何東西來代替它返回相同。請幫忙!謝謝!