2014-11-23 46 views
0

我很好奇,如何有效地获取每个整数诠释一个整数的内部,例如:获得一个int每个整数作为一个单独的INT

private int example = 83491; 

将返回以下数字

8,3,4,9,1。

当前方法我已经是将它们转换成一个字符串,然后把它们塞进一个字符数组,然后将它们转换回数字每当我想使用它们,这是非常低效的,并且必须有另一种方式。

我在想你怎么可以使用

example % 10 

,它会等于1,但我无法真正弄清楚是否有更改“幻数”来获得其他展示位置的方式。

回答

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

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

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()+",); 
} 
0

另一个解决方案是:

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