Member 13494728 Ответов: 3

Как проверить, является ли пользовательский ввод целым числом или нет?


Привет это вопрос Java,
Из этого кода я пытаюсь принять пользовательский ввод и сохранить его в целочисленной переменной. Затем я пытаюсь проверить переменную, чтобы проверить, является ли вход целым числом или нет. Если входные данные являются целым числом, вы печатаете "входные данные являются целым числом".

Однако если пользовательский ввод не имеет целочисленного типа, то мы предлагаем пользователю ввести число снова, пока пользователь не введет целое число. Я попробовал следующий код ниже, используя try and catch:
Пожалуйста помочь.

Что я уже пробовал:

import java.util.*;

public class studentExpensesUOWD {
	//Used to define a new object that would contain all input functions.
	static Scanner console = new Scanner (System.in);
	
	public static void main(String[] args) {
		
		int number;
		boolean done = false;
		do
		{
			try
			{
				System.out.print("Enter a number: ");
				number = console.nextInt();
				done = true;
		}
			catch (InputMismatchException e)
			{
				System.out.println("Invalid integer input");
			}
		} while (done == false);
			
			
		System.out.println("Integer Value Accepted");
		System.exit(0);
	}

}

3 Ответов

Рейтинг:
1

Member 14863353

System.out.print("Enter a number: ");
do {
  try {
	if ( number.hasNextInt() ) {
            number = console.nextInt();
	    done = true;
        }
       } catch (InputMismatchException e) {
          System.out.println("Invalid integer input");
          System.out.print("Enter a number: ");
      } 
   } while (done == false);

System.out.println("Integer Value Accepted");


Рейтинг:
0

Peter Leow

Воспользуйся hasNextInt[^] из всего это первоклассный сканер.
Пример Java.util.Пример метода Scanner.hasNextInt() [^]


Member 13494728

Я не знаю, как использовать этот метод.
Не могли бы вы привести небольшой пример?

CPallini

5.

Peter Leow

Спасибо, CPallini.

Рейтинг:
0

wseng

Вам нужно добавить

console.next();
после
System.out.println("Invalid integer input");


Смотрите на java - сканер пропускает nextLine() после использования next(), nextInt() или другого nextFoo()? - переполнение стека[^]