Outputting a reversed number is equivalent to a reversed number, such as 1234, and the reversed number is 4321. When reversing the number, you need to pay attention to whether the reversed number will exceed the maximum range. For example, the maximum value of int is 2147483647, and the value after normal reversal is 7463847412, but it is out of the range of int.

Sample code:

 private static long reverse(int number) {
        // 反转后的数字定义为long型,避免反转后超出了int的最大范围
        long reversedNumber = 0;
        while (number != 0) {
            reversedNumber = reversedNumber * 10 + (number % 10);
            number = number / 10;
        }

        return reversedNumber;
    }

If you need to judge whether the reversed number will exceed the maximum and minimum values of the integer, and when the reversed number exceeds, return 0, then you only need to add a judgment to the reversed number, as follows:

 private static int reverse2(int number) {
        long reversedNumber = 0;
        while (number != 0) {
            reversedNumber = reversedNumber * 10 + (number % 10);
            number = number / 10;
        }

        if (reversedNumber > Integer.MAX_VALUE || reversedNumber < Integer.MIN_VALUE) {
            return 0;
        }

        return Long.valueOf(reversedNumber).intValue();
    }

Test verification

 public static void main(String[] args) {
        System.out.println(reverse(1234));
        System.out.println(reverse(-1234));
        System.out.println(reverse(Integer.MAX_VALUE));
        System.out.println(reverse(Integer.MIN_VALUE));
        System.out.println(reverse2(Integer.MAX_VALUE));
        System.out.println(reverse2(Integer.MIN_VALUE));
    }

The output is as follows:

4321
-4321
7463847412
-8463847412
0
0

For more knowledge points related to Java interviews, you can pay attention to the [Java Interview Manual] applet, which involves Java foundation, multithreading, JVM, Spring, Spring Boot, Spring Cloud, Mybatis, Redis, database, data structure and algorithm.


十方
234 声望433 粉丝