Преобразовать целое число в массив цифр - PullRequest
36 голосов
/ 07 ноября 2011

Я пытаюсь преобразовать целое число в массив, например 1234, в int[] arr = {1,2,3,4};

Я написал функцию

public static void convertInt2Array(int guess)  {
    String temp = Integer.toString(guess);
    String temp2;
    int temp3;
    int [] newGuess = new int[temp.length()];
    for(int i=0;i<=temp.length();i++) {
        if (i!=temp.length()) {
            temp2 = temp.substring(i, i+1);
        } else {
            temp2 = temp.substring(i);
            //System.out.println(i);
        }
        temp3 =  Integer.parseInt(temp2);    
        newGuess[i] = temp3;
    }
            for(int i=0;i<=newGuess.length;i++) {
                System.out.println(newGuess[i]);
            }          
}

Но выдается исключение:

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:504)
    at java.lang.Integer.parseInt(Integer.java:527)
    at q4.test.convertInt2Array(test.java:28)
    at q4.test.main(test.java:14)
Java Result: 1

Есть идеи?

Ответы [ 21 ]

0 голосов
/ 07 ноября 2011

temp2 = temp.substring(i); всегда будет возвращать пустую строку "".

Вместо этого ваш цикл должен иметь условие i<temp.length(). И temp2 всегда должно быть temp.substring(i, i+1);.

Аналогично, когда вы печатаете newGuess, вы должны зациклить до newGuess.length, но не включая. Таким образом, ваше состояние должно быть i<newGuess.length.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...