gpt4 book ai didi

java - 如何强制 Scanner.next() 输出一个值?

转载 作者:行者123 更新时间:2023-11-30 07:38:59 25 4
gpt4 key购买 nike

我目前正在开发一个 Java 程序,它带来了一个通过命令行运行的基本配置文件编辑器。我有 1 个问题...某些条目必须是有效的输出。我尝试使用

while(!scanner.hasNext()){
System.err.println("Invalid Value");
}
String str = scanner.next();

在我看来这应该可行,因为每次scanner.hasNext();被称为程序应该暂停,直到在控制台中输入某些内容。但是当我运行程序(输入无效值)时,它只是继续循环。我做错了什么还是这只是一个错误?感谢您的帮助!

最佳答案

为了完整起见,这里是一个使用 while (true) 方法的快速解决方案:

public static void main(String[] args) {
String input = null;
try (Scanner scanner = new Scanner(System.in)) {
while (true) {
System.out.println("Please enter SOME INFORMATION:");
if (scanner.hasNextLine()) {
input = scanner.nextLine();
if (inputIsSane(input)) break;
System.out.println("Your input is malformed. Please try again.");
}
}
}
System.out.println("Got valid input. Input was: " + input);
// continue with the rest of your program here
}

private static boolean inputIsSane(String input) {
// replace with your actual validation routine
return input.equals("let me pass");
}

关于java - 如何强制 Scanner.next() 输出一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34953672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com