java整数如何反转
反转整数的方法
在Java中反转整数可以通过多种方式实现,以下是几种常见的方法:
使用数学运算
通过循环和数学运算逐步反转整数。每次循环取出原数的最后一位,加到反转后的数上。
public int reverse(int x) {
int reversed = 0;
while (x != 0) {
int digit = x % 10;
x /= 10;
if (reversed > Integer.MAX_VALUE/10 || (reversed == Integer.MAX_VALUE/10 && digit > 7)) {
return 0;
}
if (reversed < Integer.MIN_VALUE/10 || (reversed == Integer.MIN_VALUE/10 && digit < -8)) {
return 0;
}
reversed = reversed * 10 + digit;
}
return reversed;
}
使用字符串转换
将整数转换为字符串,反转字符串后再转换回整数。需要注意处理负数和溢出情况。
public int reverse(int x) {
String reversed = new StringBuilder(Integer.toString(x)).reverse().toString();
try {
return x < 0 ? -Integer.parseInt(reversed.substring(0, reversed.length() - 1)) : Integer.parseInt(reversed);
} catch (NumberFormatException e) {
return 0;
}
}
使用递归
递归方法也可以实现整数反转,但需要注意递归深度和溢出问题。

public int reverse(int x) {
return reverseHelper(x, 0);
}
private int reverseHelper(int x, int reversed) {
if (x == 0) {
return reversed;
}
int digit = x % 10;
if (reversed > Integer.MAX_VALUE/10 || (reversed == Integer.MAX_VALUE/10 && digit > 7)) {
return 0;
}
if (reversed < Integer.MIN_VALUE/10 || (reversed == Integer.MIN_VALUE/10 && digit < -8)) {
return 0;
}
return reverseHelper(x / 10, reversed * 10 + digit);
}
注意事项
- 处理负数时,需要确保符号正确。
- 反转后的整数可能会超出
Integer.MAX_VALUE或Integer.MIN_VALUE范围,需要进行溢出检查。 - 字符串转换方法简单但效率较低,数学运算方法更高效。






