回文串判断核心是双指针法,从两端向中间逐字符比较。先将字符串转为小写并去除非字母数字字符,再用左右指针遍历,若对应字符不等则返回false,否则继续直至指针相遇,最终返回true。示例代码验证了“racecar”为回文串,输出true。该方法逻辑清晰、效率高,适用于忽略大小写和空格的场景。

判断一个字符串是否为回文串,即正读和反读都相同。编写Java程序时,核心思路是比较字符串从前往后和从后往前的字符是否一致。
1. 基本思路
取字符串的前半部分与后半部分进行逐字符比较,忽略大小写和非字母数字字符(可选),如果所有对应位置的字符都相等,则是回文串。
2. 简单实现方法
- 使用双指针:一个从头开始,一个从尾开始,向中间移动,逐个比较字符。
- 可以先将字符串转为小写,并去除空格或标点(如需忽略这些)。
- 当两个指针相遇或交错时结束比较。
示例代码:
public class PalindromeCheck {
public static boolean isPalindrome(String str) {
int left = 0;
int right = str.length() - 1;
while (left zuojiankuohaophpcn right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
public static void main(String[] args) {
String test = "racecar";
System.out.println(isPalindrome(test)); // 输出 true
}}
立即学习“Java免费学习笔记(深入)”;
3. 忽略大小写和空格的版本
若要检查如 "A man a plan a canal Panama" 这类句子,需预处理字符串:
- 转换为小写。
- 只保留字母数字字符。
- 再用双指针判断。
基本上就这些,逻辑清晰,效率高,适合大多数场景。










