方法一:
1.去除除字母和数字外的字符
2.直接反转处理后的字符
3.与原字符进行对照
public static boolean method1(String s){
StringBuffer su = new StringBuffer();
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
//去除多余字符
if(Character.isLetterOrDigit(c)){
su.append(Character.toLowerCase(c));//转换大小写
}
}
StringBuffer su_rev = new StringBuffer(su).reverse();//获取反转后的su
return su.toString().equals(su_rev.toString());//对照判断
}
方法二:
1.去除除字母和数字外的字符
2.利用双指针,对首尾进行对比
public static boolean method2(String s) {
StringBuffer su = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
//去除标点符号和空格
if (Character.isLetterOrDigit(c)) {
su.append(Character.toLowerCase(c));//转换大小写
}
}
//双指针
int left, right;
left = 0;
right = su.length() - 1;
while (left < right) {
if (su.charAt(left) != su.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}