java如何判断回文数
判断回文数的方法
回文数是指正读和反读都相同的数字。例如,121 和 1221 都是回文数。以下是几种在 Java 中判断回文数的方法。
方法一:转换为字符串反转比较
将数字转换为字符串,反转后与原字符串比较是否相同。
public static boolean isPalindrome(int num) {
String original = Integer.toString(num);
String reversed = new StringBuilder(original).reverse().toString();
return original.equals(reversed);
}
方法二:数学方法反转数字
通过数学运算反转数字,然后与原数字比较是否相同。
public static boolean isPalindrome(int num) {
if (num < 0) return false;
int reversed = 0;
int original = num;
while (num != 0) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
return original == reversed;
}
方法三:优化数学方法
仅反转数字的后半部分,与前半部分比较是否相同。这种方法可以减少循环次数。
public static boolean isPalindrome(int num) {
if (num < 0 || (num % 10 == 0 && num != 0)) return false;
int reversed = 0;
while (num > reversed) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
return num == reversed || num == reversed / 10;
}
方法四:递归实现
使用递归反转数字并比较是否相同。
public static boolean isPalindrome(int num) {
return num == reverse(num, 0);
}
private static int reverse(int num, int temp) {
if (num == 0) return temp;
temp = temp * 10 + num % 10;
return reverse(num / 10, temp);
}
注意事项
- 负数不是回文数,可以直接排除。
- 如果数字以 0 结尾且数字本身不为 0,可以直接排除。
- 数学方法在处理大数字时可能溢出,需根据实际需求选择合适的方法。







