将int中的每个整数作为单独的int获取

时间:2014-11-23 15:00:54

标签: java integer

我很好奇如何有效地为整数内部的每个int获取一个整数,例如:

private int example = 83491;

会返回以下数字

8,3,4,9,1。

我当前的方法是将它们转换为字符串,然后将它们填充到char数组中,然后在我想使用它们时将它们转换回数字,这是非常低效的,并且必须采用另一种方式。

我在考虑如何使用

example % 10

它等于1,但我无法弄清楚是否有办法改变“魔数”以获得其他位置。

3 个答案:

答案 0 :(得分:3)

public class Test {
    public static void main(String[] args) {
        int num = 83491;

        if (num < 0)
            num = -num;
        List<Integer> digits = new LinkedList<Integer>();

        while (num > 0) {
            digits.add(0, num % 10);
            num = num / 10;
        }

        System.out.println(Arrays.toString(digits.toArray()));
    }
}

<强>输出

[8, 3, 4, 9, 1]

答案 1 :(得分:1)

你是对的。你可以用%做。试试

int number=83491; 
LinkedList<Integer> stack = new LinkedList<Integer>();
while (number > 0) {
    stack.push( number % 10 );
    number = number / 10;
}

while (!stack.isEmpty()) {
    System.out.print(stack.pop()+",);
}

答案 2 :(得分:0)

另一种解决方案是:

int num=83491;
System.out.println(Arrays.toString(String.valueOf(num).toCharArray()));