给定一个字符串,验证是否为回文字符串,只考虑数字和字母,不区分大小写
输入
“a*b?c,c,b a”
输出true
解释:abccba是回文字符串
输入
“rea d”
输出false
解释:read不是回文字符串
public static void main(String[] args) {
System.out.println(isPalindrome("a*b?c,c,b a"));
}
public static boolean isPalindrome(String s) {
String s1 = s.toUpperCase();
int a = 0, b = s1.length() - 1;
while (a < b) {
//Character.isLetterOrDigit(ch)判断ch是否为数字或者字母
while (a < b && !Character.isLetterOrDigit(s1.charAt(a))) {
a++;
}
while (a < b && !Character.isLetterOrDigit(s1.charAt(b))) {
b--;
}
if (s1.charAt(a) != s1.charAt(b)) {
return false;
}
a++;
b--;
}
return true;
}