Как я могу проверить, что следующие три входных пользователя дают значение типа int, как, скажем, есть три переменные,
И я принимаю входные данные как,
Scanner sc = new Scanner (System.in);
var1 = sc.nextInt();
var2 = sc.nextInt();
var3 = sc.nextInt();
Теперь, если я хочу использовать while(sc.hasNextInt())
, чтобы определить, является ли следующий входint или нет, тогда он будет только проверять, является ли следующий вход для var1 целым или нет, и не проверяет другие переменные, var2 , var3 .Одно можно сделать с помощью while loop
с if (condition)
.Например,
Scanner sc = new Scanner (System.in);
while (sc.hasNextInt()) {
var1 = sc.nextInt();
if (sc.hasNextInt()) {
var2 = sc.nextInt();
if (sc.hasNextInt()) {
var3 = sc.nextInt();
}
}
}
Но это выглядит долго и требует много написания.Для аналогичной проблемы, которую я видел для Язык C , есть метод для scanf()
, который может добиться цели.Например,
while(scanf("%d %d %d", &var1, &var2 & var3) == 3) {
// Statements here
}
Итак, мой вопрос, есть ли такие функции, доступные в java Scanner.hasNextInt
или Scanner.hasNext("regex")
.
Я также пробовал sc.hasNext("[0-9]* [0-9]* [0-9]*")
, но на самом деле не работал.
Заранее спасибо.