例如,假设用户输入:2314。获取每个数字并将其放入数组中自己的字段的最快方法是什么?
我尝试转换为字符串,然后将每个数字隔离为char,但我不知道如何将它从char转换为int。
答案 0 :(得分:4)
String#toCharArray()
方法将字符串转换为char数组。int[]
。 记住,将char
转换为int
棘手。您不能只执行类型转换。这将为您提供该数字的 ASCII 代码。您可以使用以下代码从char
转换为int
:
char ch = '3';
int chToInt = ch - '0';
替代方法是使用ArrayList
。并执行整数除法和模数操作,以获取每个数字,并将其添加到ArrayList
。
2314 / 1000 = 2 // First digit (add to ArrayList)
2314 % 1000 = 314 // This is the new number
314 / 100 = 3 // Add this to ArrayList
314 % 100 = 14 // This is the new number
// Proceed like this
您需要找到一种方法为上述步骤编写loop
。
答案 1 :(得分:2)
int number = 1234;
int array[] = new int[String.valueOf(number).length()];
for (int i = 0; number > 0; i++) {
array[i] = number % 10;
number = number / 10;
}
答案 2 :(得分:0)
以相反的顺序打印整数a(lsb到msb)
while(a > 0)
{
arr[i] = a%10;
a = a/10;
}
答案 3 :(得分:0)
试试这个:
int[] nums = new int[input.length];
int i = 0;
for (String c : input.split("(?<=.)")
nums[i++] = Integer.parseInt(c);
分割正则表达式是关键:它是任何角色的“后视”,导致每个角色后的分割。
如果您只是在空白上进行拆分,即str.split("")
,则结果数组的第一个元素中会出现空白。
答案 4 :(得分:0)
尝试这样的事情
String str="2314";
int[] arr=new int[str.length()];
for(int i=0;i<arr.length;i++){
arr[i]=Integer.parseInt(str.substring(i,i+1));
}