当我运行这个程序时,它会挂起,是否与代码有关?因为如果是的话,我无法发现这个错误。
public class PalindromeSolution {
public static void main(String [] args) {
String [] arr;
String s1 = "taco cat";
boolean palindrome = true;
s1 = s1.replaceAll("\\s", "");
arr = s1.split("(?!^)");
int i = 0;
while(i < arr.length) {
if(arr[i] == arr[(arr.length - 1) - i]) {
i++;
} else {
palindrome = false;
break;
}
}
System.out.println("Is palindrome: " + palindrome);
}
}
答案 0 :(得分:1)
它不适合我。但这是不正确的,
因为你不应该将字符串与==
进行比较,
你应该使用.equals()
。
通过此更改,它将正确运行:
if(arr[i].equals(arr[(arr.length - 1) - i])) {
......虽然很差:
s1.toCharArray()
arr.length
? <{1}}就足够了arr.length / 2
循环比for
循环像这样:
while
答案 1 :(得分:0)
您可以使用StringBuffer来保持代码简单:
s1 = s1.replaceAll("\\s", "");
StringBuffer str2=new StringBuffer(s1);
str2.reverse();
if(str2.toString().equals(s1))
return true;
else
return false