例如,假设用户输入:2314。获取每个数字并将其放入数组中自己的字段中的最快方法是什么?
我尝试将其转换为字符串,然后将每个数字隔离为 char,但我不知道如何将其从 char 转换为 int。
String#toCharArray()
。int[]
大小等于 char 的数组。请记住,转换char
为int
很棘手。你不能只做一个typecast。这将为您提供该号码的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
为上述步骤编写一个。
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;
}
以相反的顺序打印整数 a(从 lsb 到 msb)
while(a > 0)
{
arr[i] = a%10;
a = a/10;
}
试试这个:
int[] nums = new int[input.length];
int i = 0;
for (String c : input.split("(?<=.)")
nums[i++] = Integer.parseInt(c);
拆分正则表达式是关键:它是任何字符的“后视”,这会导致每个字符之后的拆分。
如果您只是在一个空白上拆分,即str.split("")
,结果数组的第一个元素中有 s 空白。
尝试这样的事情
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));
}