Попробуйте это:
public static void main(String[] args)
{
Pattern p = Pattern.compile("^\\d+$");
Scanner kb = new Scanner(System.in);
int num1;
int num2 = 0;
String temp;
Matcher numberMatcher;
System.out.print("Enter number 1: ");
try
{
num1 = kb.nextInt();
}
catch (java.util.InputMismatchException e)
{
System.out.println("Invalid Input");
//
return;
}
while(num2<num1)
{
System.out.print("Enter number 2: ");
temp = kb.next();
numberMatcher = p.matcher(temp);
if (numberMatcher.matches())
{
num2 = Integer.parseInt(temp);
}
else
{
System.out.println("Invalid Number");
}
}
}
Вы также можете попытаться разобрать строку в int
, но обычно люди стараются избегать исключения.
Что я сделал, так это то, что определил регулярное выражение, которое определяет число, \d
означает числовую цифру. Знак +
означает, что должна быть одна или несколько цифр. Дополнительная \
перед \d
заключается в том, что в java \
является специальным символом, поэтому его необходимо экранировать.