就按数字的方式处理,通过%10从x拿出来数字,再放入到新数字的个位上,然后解题框里接收的x就是int类型,所以只需要判断每次放完的新数字是不是超了Integer.MAX_VALUE/10和Integer.MIN_VALUE/10就行了。 public int reverse(int x) { int rev = 0; while (x != 0) { if (rev < Integer.MIN_VALUE / 10 || rev > Integer.MAX_VALUE / 10) { return 0; } int digit = x % 10; x /= 10; rev = rev * 10 + digit; } return rev; } 这题好歹放在了字符串处理章节,所以通过字符串处理方式翻转,翻转完转回int,要是超了就报错了。 public int reverseString(int x) { try { String s = String.valueOf(x); if (x < 0) { s = s.substring(1); } s = new StringBuilder(s).reverse().toString(); if (x < 0) { s = "-" + s; } return Integer.parseInt(s); } catch (NumberFormatException e) { return 0; } }