Не могу ввести сначала число, потом строку

215
08 сентября 2018, 08:40

Код программы еще не закончен, но это часть заключается в переводе строки в массив. В строке вводим числа через пробел. Проблема в том, что если сначала вводим строку, потом число, то работает, а тут нет, и выдает ошибку:

Exception in thread "main" java.lang.NumberFormatException: For input string: ""

Как я понял, это ошибка говорит о том, что я не ввел строку. Но я не могу ее ввести, почему то.

import java.util.Arrays;
import java.util.Scanner;
public class Asm {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int x = in.nextInt();
        String str1 = in.nextLine();
        String strArr1[] = str1.split(" ");
        int numArr1[] = new int[strArr1.length];
        for (int i = 0; i < strArr1.length; i++) numArr1[i] = 
Integer.parseInt(strArr1[i]);
        System.out.println(x);
        System.out.println(Arrays.toString(strArr1));
    }
}
Answer 1

Например мы ввели строку 1 2 3 4 5. По вашему коду считывается первое число 1 и остается число строка 2 3 4 5. После того, как вы делаете split(" "), то получается массив String[] array = {"", "2", "3", "4", "5"}. И когда вы начинаете, считывать парсить массив, то пустую строку распарсить не получается, нужно убрать in.nextInt().

Scanner in = new Scanner(System.in);
String str1 = in.nextLine();
String strArr1[] = str1.split(" ");
int numArr1[] = new int[strArr1.length];
for (int i = 0; i < strArr1.length; i++)
    numArr1[i] = Integer.parseInt(strArr1[i]);
System.out.println(Arrays.toString(strArr1));
READ ALSO
Не даёт результата функция setBackground() Java Swing

Не даёт результата функция setBackground() Java Swing

Цвет окна не меняется при использовании функции setBackground()

230
Как получить элементы страницы по имени тэга

Как получить элементы страницы по имени тэга

Есть примерно такой файл xml (полный файл https://rufiles

322
Android studio - ScheduledExecutorService странная ошибка

Android studio - ScheduledExecutorService странная ошибка

Делаю выделение определенного синтаксиса через ScheduledExecutorService, со следующим синтаксисом:

221
как устроена область видимости?

как устроена область видимости?

мучает вопрос, как внутри работает область видимости в различных языках? Ну или хотя бы интересно было бы узнать общую концепциюкак например...

262