在数组中存储数字的数字

时间:2016-01-30 18:35:16

标签: java arrays

Hello其他程序员! 我是Java的初学者,我正在寻找一种方法或方法,可以将用户输入的6位数的数字存储在int数组中。 例如 :- 如果数字是675421。 然后我想将数字存储在一个数组中,如: -

int[] array = new int[6];
int number = 675421 
array[0] = 6;
array[1] = 7;
array[2] = 5; 
array[3] = 4;
array[4] = 2;
array[5] = 1;

我想这样做,以便我可以使用数组来排序或更改数组中的顺序或数字。谢谢!

5 个答案:

答案 0 :(得分:1)

你走了,

String temp = Integer.toString(number);

int[] num = new int[temp.length()];

for (int i = 0; i < temp.length(); i++){
    num[i] = temp.charAt(i) - '0';
}

for (int i = 0; i < temp.length(); i++) {
    System.out.println(num[i]);
}

在评论后编辑

此处,首先,您要将number转换为字符串。 然后,从中取出每个char(在循环中),从每个char中减去ASCII的{​​{1}}值以获得数字[即,0 ASCII0481,...](请参阅ASCII table

答案 1 :(得分:1)

做这样的事情:

String number = "123123";
    int[] intArray = new int[number.length()];

    for (int i = 0; i < number.length(); i++)
    {
        intArray[i] = Integer.parseInt(Character.toString(number.charAt(i)));
    }

希望这有帮助,

杰森。

答案 2 :(得分:1)

以下是递归解决方案

public static void main(String[] args) {
    int testNum = 675421;
    List<Integer> digitList = new ArrayList<Integer>();
    collectDigits(testNum, digitList);
    Object[] resultArr = digitList.toArray();
    int listSize = resultArr.length;
    for (int listCount = 0; listCount < listSize; listCount++) {
        System.out.println("result["+listCount+"] = "+resultArr[listCount]);
    }
}

private static void collectDigits(int num, List<Integer> digits) {
    if (num / 10 > 0) {
        collectDigits(num / 10, digits);
    }
    digits.add(num % 10);
}

答案 3 :(得分:0)

执行此操作的一种方法是将原始整数转换为字符串。 循环遍历字符串,将每个字符解析回int,并放入数组中。这是一个例子:

int number = 123456;

String strNumber = number+"";

int[] array = new int[strNumber.length()];

int index = 0;

for(char c : strNumber.toCharArray()){
    array[index++] = Integer.parseInt(c+"");
}

System.out.println(Arrays.toString(array));

答案 4 :(得分:0)

数学解决方案,您可以使用以下方法拆分int数:

{{1}}

如果“数字”具有可变长度,您可以自动执行此操作,如果您需要帮助,请写一篇文章

相关问题