2014-11-04 75 views
0

我想从给定的整数中提取个人号码。例如从1234开始,我想将1,2,3,4存储在一个数组中。每次数字的位数可能都不相同。我不知道如何初始化相同的数组。从数字中提取个人数字。

int number = 1234; 

int [] a = new int[]; 

for(int i =0;i<lengthOfNum;i++){ 
    a[i] = digitReturn(); 
} 
+0

你想将个别数字作为“int”值吗?或者没有关系? – TNT 2014-11-04 02:49:38

+0

我想要它作为int。 – user2195582 2014-11-04 02:50:24

回答

4

名单:

int number = 1234; 
int length = Integer.toString(number).length(); 
int[] a = new int[length]; 

int index = length - 1; 
for (int i = 0; i < length; i++){ 
    a[i] = number % 10; 
    number = number/10; 
    index--; 
} 

转换数量为String获取大小并使用该值声明数组的长度,然后循环遍历它,使用模数提取最后一个数字,然后除以整数中的最后一个数字。

+0

非常感谢。 – user2195582 2014-11-04 03:07:43

+0

没问题,我刚刚意识到订单实际上会颠倒过来(即,如果以这种方式进行操作,您将获得4321而不是1234)如果您想要正确的订单,请参阅我的最新更改 - 只是向后填充阵列。 – RizJa 2014-11-04 03:09:39

0

将数字转换为字符串,然后将字符串拆分为数组。在那之后,字符转换成整数,像这样:

int number = 1234; 
List<Integer> digits = ArrayList<Integer>(); 
String digitsAsString = ("" + number).split(""); 
for(String digitAsString:digitsAsString){ 
    digits.add(new Integer(Integer.parseInt(digitAsString)); 
} 

你的数字数组是你可以尝试以下的digits

+0

我不想使用列表,我想使用数组。 – user2195582 2014-11-04 02:56:18

+0

你可以使用digits.toArray() – DrOverbuild 2014-11-04 03:01:58

+0

或者你可以在String.charAt()方法的基础上构建你的方法,如下面的bakalolo,它非常适合数组。使用.split()似乎有点过分。 – MarsAtomic 2014-11-04 03:23:05

0
int number = 4567; 
String number_string = String.valueOf(number); 
char[] chars = number_string.toCharArray(); 
int[] digits = new int[chars.length]; 
int i = 0; 
for (char c : chars) { 
    digits[i] = c - '0'; 
    i++; 
} 
0
int number = 1234; 
String num = Integer.toString(number); 
int [] a = new int[num.length()]; 

for(int i = 0; i < num.length(); i++){ 
    a[i] = Character.getNumericValue(num.charAt(i)); 
} 

先转换数为字符串,通过每个炭环路,并转换成一个整数,那么该值存储到一个。