This question already has answers here:
How to sort Integer digits in ascending order without Strings or Arrays?
                                
                                    (8个答案)
                                
                        
                7个月前关闭。
            
        

这是一个示例输入:
1002372
我需要这样的输出:
0012237
我需要使用循环和布尔代数。
我已经将int转换为String,并尝试了以下方法:

x = String.valueOf(a);
y = String.valueOf(b);

for(int z = 0; z < x.length(); z++)
{
    if(x.charAt(z) == '0')
    {
        System.out.println(x.charAt(z));
    }
    if(x.charAt(z) == '1')
    {
        System.out.println(x.charAt(z));
    }
}


该程序无需先运行并查找所有零,而只是按顺序打印数字。

如何一次检查并打印所有一个整数?

最佳答案

您走在正确的道路上,要完成逻辑,您将需要一个附加循环来迭代数字0到9(含0和9),并将索引z处的字符串与之进行比较,如下所示。

解决方案1:使用字符串

String numberStr = String.valueOf(1002372);

for (int digit = '0'; digit <= '9'; digit++) {
    for (int index = 0; index < numberStr.length(); index++) {
        if (numberStr.charAt(index) == ((char) digit)) {
            System.out.print(numberStr.charAt(index));
        }
    }
}


解决方案2:使用整数

int number = 1002372;
int tempNumber, tempDigit;

for (int digit = 0; digit <= 9; digit++) {
    tempNumber = number;
    while (tempNumber > 0) {
        tempDigit = tempNumber % 10;
        tempNumber = tempNumber / 10;

        if (tempDigit == digit) {
            System.out.print(tempDigit);
        }
    }
}

07-26 09:19
查看更多