试试这个:
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");
}
}
}
您也可以尝试将字符串解析为 an int
,但通常人们会尽量避免抛出异常。
我所做的是我定义了一个定义数字的正则表达式,\d
表示数字。符号表示必须有+
一个或多个数字。\
前面的多余\d
是因为在java中,\
是一个特殊字符,所以必须转义。