This question already has answers here:
How to sort Integer digits in ascending order without Strings or Arrays?
(8个答案)
7个月前关闭。
这是一个示例输入:
我需要这样的输出:
我需要使用循环和布尔代数。
我已经将
该程序无需先运行并查找所有零,而只是按顺序打印数字。
如何一次检查并打印所有一个整数?
解决方案2:使用整数
(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);
}
}
}