Я хотел превратить строку целых чисел с одной цифрой в ArrayList Integer
, и я получаю очень странное исключение. Вот пример кода:NumberFormatException: для строки ввода: "" при разборе
Scanner test = new Scanner(System.in);
String[] temp = null;
String line = null;
ArrayList<Integer> artemp = new ArrayList<>();
while(test.hasNext()) {
line = test.next();
temp = line.split("");
for(int i = 0; i < temp.length; i++)
artemp.add(Integer.parseInt(temp[i]));
for(int i : artemp) System.out.println(i);
}
Это в основном предполагается прочитать строку Интс из стандартного ввода, поместите их в ArrayList в качестве примитивов, а затем распечатать их. Конечно, это всего лишь небольшой тестовый пример, на который я сузил мою большую ошибку.
Исключение здесь возникает следующая:
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)
Насколько я могу видеть, следующее должно иметь место:
line
принимает стандартный вводtemp
наполняется каждый от отдельных однозначных значений (разделение («») делится после каждого символа)- Каждая цифра (хранится как
String
) анализируется какint
и добавляется кartemp
- Распечатывайте каждую цифру.
Что именно здесь происходит? Если я распечатать temp
со следующим кодом:
for(String s : temp) System.out.println(s);
Затем цифры получить успешно печатается (в виде строк), и я нет никаких дополнительных символов. Как точно можно было бы применить parseInt(temp[i])
к строке ""
?
Вы хотите преобразовать строку say - '1234', в отдельные цифры? –