You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不使用库反转数字问题:末尾带0的数字反转结果不符预期

解决数字反转时保留前导零的问题

嘿,这个问题的核心原因很简单:整数类型(int)本身不会保留前导零。当你把00001作为整数存储时,它会自动被简化成1,所以你的原代码没办法输出带前导零的结果。要解决这个问题,我们可以换两种思路来实现:

方法一:直接用字符串反转(推荐,更简洁)

字符串可以完整保留每一个字符,包括末尾的零,反转后这些零就变成前导零,直接输出就能得到你想要的格式。修改后的代码如下:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        for (int i = 0; i < 4; i++) {
            // 直接读取字符串,而不是整数
            String numberStr = input.next();
            // 使用StringBuilder的reverse方法快速反转字符串
            StringBuilder reversedStr = new StringBuilder(numberStr).reverse();
            System.out.println(reversedStr);
        }
    }
}

比如输入10000,这段代码会直接反转字符串得到00001并输出,完美保留所有前导零。

方法二:整数反转后补零(适合坚持用整数处理的场景)

如果你还是想通过整数运算来反转,那需要先统计原始数字末尾的零的个数,反转完非零部分后,再把这些零追加回去:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        for (int i = 0; i < 4; i++) {
            int number = input.nextInt();
            int originalNumber = number;
            int zeroCount = 0;
            
            // 第一步:统计原始数字末尾的零的数量
            while (originalNumber != 0 && originalNumber % 10 == 0) {
                zeroCount++;
                originalNumber /= 10;
            }
            
            // 第二步:反转去掉末尾零后的数字
            int reverse = 0;
            int temp = originalNumber;
            while (temp != 0) {
                reverse = reverse * 10 + temp % 10;
                temp /= 10;
            }
            
            // 第三步:把统计到的零追加到反转结果后面
            StringBuilder result = new StringBuilder(String.valueOf(reverse));
            for (int j = 0; j < zeroCount; j++) {
                result.append("0");
            }
            
            System.out.println(result);
        }
    }
}

这个方法的逻辑是:先把原始数字末尾的零“记下来”,反转剩下的非零部分后,再把这些零补回去,这样就能得到00001这样的结果。

两种方法里,字符串反转的方式代码更简洁,也不容易出错,更推荐你使用哦。

内容的提问来源于stack exchange,提问作者Zuher Abud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:39:25