java如何判断回文数
判断回文数的方法
回文数是指正读和反读都相同的数字。例如,121、1331 都是回文数。以下是几种在 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 original = num;
int reversed = 0;
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;
}
注意事项
- 负数不是回文数。
- 如果数字以 0 结尾且本身不为 0,则不是回文数。
- 数学方法比字符串方法更高效,适合处理大数字。







