-1

例如,假设用户输入:2314。获取每个数字并将其放入数组中自己的字段中的最快方法是什么?

我尝试将其转换为字符串,然后将每个数字隔离为 char,但我不知道如何将其从 char 转换为 int。

4

5 回答 5

4
  1. 您可以将您的数字转换为字符串。
  2. 然后使用方法将字符串转换为字符数组String#toCharArray()
  3. 创建一个int[]大小等于 char 的数组。
  4. 遍历 char 数组,并将每个字符转换为 int,并将其放入整数数组中。

请记住,转换charint棘手。你不能只做一个typecast。这将为您提供该号码的ASCII码。您可以使用以下代码从转换charint

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为上述步骤编写一个。

于 2013-07-19T10:40:23.937 回答
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;
}
于 2013-07-19T10:40:26.497 回答
0

以相反的顺序打印整数 a(从 lsb 到 msb)

while(a > 0)
{
    arr[i] = a%10;
    a = a/10;
}
于 2013-07-19T10:42:14.387 回答
0

试试这个:

int[] nums = new int[input.length];
int i = 0;
for (String c : input.split("(?<=.)")
    nums[i++] = Integer.parseInt(c);

拆分正则表达式是关键:它是任何字符的“后视”,这会导致每个字符之后的拆分。

如果您只是在一个空白上拆分,即str.split(""),结果数组的第一个元素中有 s 空白。

于 2013-07-19T10:43:17.310 回答
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));
    }
于 2013-07-19T10:45:59.780 回答