java 如何实现回文
判断字符串是否为回文
使用 StringBuilder 的 reverse() 方法可以快速判断字符串是否为回文。将原字符串与反转后的字符串进行比较,若相同则为回文。
public static boolean isPalindrome(String str) {
return str.equals(new StringBuilder(str).reverse().toString());
}
忽略大小写和空格
在比较前,可以统一转换为小写并移除空格,以忽略大小写和空格的影响。

public static boolean isPalindromeIgnoreCase(String str) {
String processed = str.replaceAll("\\s+", "").toLowerCase();
return processed.equals(new StringBuilder(processed).reverse().toString());
}
数字回文判断
对于数字,可以将其转换为字符串后判断,或通过数学方法反转数字进行比较。

public static boolean isNumericPalindrome(int num) {
int original = num;
int reversed = 0;
while (num > 0) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
return original == reversed;
}
递归方法
使用递归可以检查字符串的首尾字符是否相同,并逐步缩小检查范围。
public static boolean isPalindromeRecursive(String str) {
if (str.length() <= 1) {
return true;
}
if (str.charAt(0) != str.charAt(str.length() - 1)) {
return false;
}
return isPalindromeRecursive(str.substring(1, str.length() - 1));
}
使用双指针
双指针法通过两个指针从字符串两端向中间移动,逐个比较字符。
public static boolean isPalindromeTwoPointer(String str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}






