Как отсканировать неопределенный список чисел с одного входа?

1

Как сканировать неопределенный список чисел с одного входа?

Я сделал короткий поиск по Google и нашел hasNextInt(), но он останавливает только проверку, если последний вход НЕ является целым числом, в то время как мне нужно его остановить, если это последнее целое число. Например, он будет продолжать спрашивать меня, заканчивается ли мой список целым числом.

Мой код:

 System.out.println("Enter a list of numbers");
        int n = 0;
        while (input.hasNextInt()){
            n = input.nextInt();
            List.push(n);
        }
        List.displayStack();
  • 0
    Не используйте заглавные буквы. Как вы хотите, чтобы пользователь уведомил вашу программу, что список окончен?
  • 0
    Я хочу сделать так, чтобы пользователю нужно было только ввести список целых чисел (и не нужно вводить что-то вроде «a» в конце списка, чтобы удовлетворить «hasNextInt».) Пытаясь найти способ, чтобы Программа останавливается после прочтения последнего int на входе, независимо от того, сколько # ints на входе.
Показать ещё 1 комментарий
Теги:
java.util.scanner

1 ответ

0
Лучший ответ

hasNext() этого вы можете использовать hasNext(). Затем проанализируйте ввод и получите номер -

    int n=0;
    Scanner input = new Scanner(System.in);

    while (input.hasNext()) {
        try {
            n = Integer.parseInt(input.nextLine());
            //do something eg.- you have done
            //List.push(n);
        } catch (NumberFormatException nfe) { 
            //handle exception
        }
   }

Теперь, если вход не является целым числом, он не остановится. Скорее он пойдет на блокировку. А поскольку блок Загвоздка еще в while циклы, так что вы можете сделать новый вход еще в настоящее время.

Надеюсь, это поможет.
большое спасибо

  • 0
    Это предполагает, что целые числа разделены символами новой строки. Вам также понадобится «перерыв» в блоке catch.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню