2
public static String check(String str)
{
String result = "";
// Strips the string down to only letters a-z and numbers 0-9, and makes it lowercase
str = str.replaceAll("[^A-Za-z0-9]", "");
str = str.replaceAll("\\s+","");
str = str.toLowerCase();
if (str.length() < 1)
{
result = "The string is a palindrome";
}
else if ((str.charAt(str.length() - 1)) == (str.charAt(0)))
{
StringBuilder sb = new StringBuilder(str);
sb.deleteCharAt(0);
sb.deleteCharAt(sb.length()-1);
check(sb.toString());
}
else
{
result = "The string is not a palindrome";
}
return result;
}
我試圖將幾個字符串傳入此方法,包括迴文。出於某種原因,它會一直返回默認值「」。爲什麼該方法不會返回有關字符串是否是迴文的信息?遞歸回文函數保持返回默認結果值?
你應該改變'check(sb.toString())'這一行'' 'result = check(sb.toString());' – DB5
此外,它會更容易做'檢查(str.substring(1,str.length() - 1));'而不是整個StringBuilder的東西。 –