如何使用模式向后吐出一个整数

时间:2017-01-12 09:11:13

标签: java

因此,在我的在线课程中,它要求我编写一个程序,逐个打印任何5位数的整数,如下所示:

14325将打印为

5
2
3
4
1

老师希望我们使用整数运算来实现这一点,并说有一种模式。

我在这里待了半个小时试图寻找答案,但是每个人似乎都没有找到我发现的整数运算。

我不是要求像这个问题的完整解决方案,只是要求有人请我指出正确的方向。非常感谢!

3 个答案:

答案 0 :(得分:4)

打印最后一位数(模10),然后除以10.重复此操作,直到原始数字变为0。

int number = 14325;

while(number > 0) {
    System.out.println(number % 10);
    number /= 10;
}

答案 1 :(得分:1)

使用String.toCharArray

    String number = 12345 + "";
    char[] chars = number.toCharArray();
    for(int i = chars.length - 1; i >= 0 ; i--){
        System.out.println(chars[i]);
    }

答案 2 :(得分:0)

确信你已经提交了你的作业,我想详细说明我的评论“如果你知道整数总是5位数,那么可以没有循环。”这里有:

    if (number < 10000 || number > 99999) {
        throw new IllegalArgumentException("Requiring five digits, got " + number);
    }
    System.out.println(number % 10);
    System.out.println(number / 10 % 10);
    System.out.println(number / 100 % 10);
    System.out.println(number / 1000 % 10);
    System.out.println(number / 10000 % 10);

如果number14325,则会打印:

5
2
3
4
1

在这里尝试一点心灵阅读(当然不是我的家庭领域),老师谈到的'模式'可能是这样的,除以(除数)的数字为每个数字得到额外的0(你甚至可能会将第一行写为System.out.println(number / 1 % 10);,如果你想让它适合模式,但实际上......)。所以没有设计模式或正则表达式模式,因为有些人可能已经解释了这个词。

编辑:最后一个语句中的% 10是多余的。为了模式,我将它留在那里。