判断给定字符串是否为回文字符串,用Java
时间: 2023-11-01 15:04:12 浏览: 132
可以使用双指针法,从字符串的两端开始向中间遍历,判断对应的字符是否相等。如果出现不相等的情况,则不是回文字符串。
Java代码如下:
```
public boolean isPalindrome(String s) {
if (s == null || s.length() == 0) {
return true;
}
int left = 0, right = s.length() - 1;
while (left < right) {
char c1 = s.charAt(left);
char c2 = s.charAt(right);
if (!Character.isLetterOrDigit(c1)) {
left++;
} else if (!Character.isLetterOrDigit(c2)) {
right--;
} else if (Character.toLowerCase(c1) != Character.toLowerCase(c2)) {
return false;
} else {
left++;
right--;
}
}
return true;
}
```
在该代码中,我们使用了Character类中的isLetterOrDigit方法来判断一个字符是否是字母或数字。同时,我们将所有字母转换成小写字母,以便比较。
可以通过以下代码进行测试:
```
String s1 = "A man, a plan, a canal: Panama";
String s2 = "race a car";
System.out.println(isPalindrome(s1)); // true
System.out.println(isPalindrome(s2)); // false
```
阅读全文