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;
我想这样做,以便我可以使用数组来排序或更改数组中的顺序或数字。谢谢!
答案 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
ASCII
是0
,48
为1
,...](请参阅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}}
如果“数字”具有可变长度,您可以自动执行此操作,如果您需要帮助,请写一篇文章