如何隔离int中的每个数字并将其放入数组中?

时间:2013-07-19 10:32:36

标签: java arrays int

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

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

5 个答案:

答案 0 :(得分:4)

  1. 您可以将您的号码转换为字符串。
  2. 然后使用String#toCharArray()方法将字符串转换为char数组。
  3. 创建一个大小等于char数组的int[]
  4. 迭代char数组,并将每个字符转换为int,并将其放入整数数组。
  5. 记住,将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));
    }