如何使用扫描器 hasNext() 方法来确保用户仅选择 1 到 20 之间的值,然后将该值用作字符串以在 fillSpot
变量中返回?下面的代码缺少一种方法来检查输入是否在 1 到 20 之间。我还在最终返回行上收到错误代码 fillSpot 无法解析为变量
。任何帮助将非常感激!
public String giveInput() {
Scanner in = new Scanner(System.in);
int space;
do {
System.out.println("Enter numerical value between 1 and 20");
while (in.hasNext()) {
String fillSpot = in.nextLine();
System.out.printf("\"%s\" is not a valid input.\n", fillSpot);
}
space = in.nextInt();
} while (space < 1 || space < 20);
return fillSpot;
}
最佳答案
您也可以尝试此操作,根据您的要求,您可以返回字符串或整数。
public static String giveInput() {
Scanner in = new Scanner(System.in);
String inputString;
int inputNumber = 0;
do {
System.out.println("Enter numerical value between 1 and 20");
inputString = in.nextLine();
try {
inputNumber = Integer.parseInt(inputString);
} catch (NumberFormatException e) {
System.err.println("Please enter a number");
}
} while (inputNumber < 1 || inputNumber > 20);
return inputString;
}
关于java - 使用 hasNext() Scanner 方法仅允许一组 X 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60266657/