我在使用以下程序时遇到问题。我希望输入具有“值”形式,后跟一个双精度值,如果输入不是这种形式,我想返回一条错误消息。本质上,我想检查第一个单词是否为“value”(如果不是,则返回“false”),然后我想检查是否存在另一个标记,并且此标记是双精度(如果不是这种情况,则返回错误的)。但是,我遇到了麻烦,因为如果我只是输入“值”作为输入,程序只会等待我输入另一个标记,而不是返回“预期值”。就像我想要的那样。这是代码:
import java.util.Scanner;
public class scanCheck {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
double a;
String str;
str = kb.next();
if (!str.equals("value"))
System.out.print("Invalid format.");
else {
if (kb.hasNext())
if (kb.hasNextDouble())
a = kb.nextDouble();
else
System.out.println("Value expected.");
else
System.out.println("Value expected.");
}
}
}
谢谢!