【发布时间】:2015-05-15 01:11:26
【问题描述】:
我正在尝试获取用户输入并使用正则表达式对其进行验证。但是,当我运行程序时,它似乎并没有等待接收任何额外的用户输入。相反,我得到了
线程“main”中的异常 java.util.NoSuchElementException`
任何关于正在发生的事情的帮助都会很棒!
这是我的代码:
//Retrieve name
System.out.println("What name would you like to search for? (Enter first name only without spaces)");
Scanner input = new Scanner(System.in);
while (!input.hasNext("[A-Za-z]+")) {
System.out.println("Invalid entry. Please enter first name only.");
input.next();
}
String name = input.next();
System.out.println("You gave me as input the name:" + name);
}
【问题讨论】:
-
我可以毫无问题地运行它。您输入的是什么类型的输入?
-
为什么 [A-Za-z] 后面有一个+号?
-
@ClydeD'Cruz 这是一个正则表达式元字符,意思是“前面的一个或多个”。
-
你之前问的是一个完全不同的问题(我的回答提供了一个解决方案)。如果您想问另一个问题,请不要编辑您的原始问题。接受答案并发布一个新问题!否则,每次您感觉如此时,您都会用不同的问题来编辑您的初始帖子,这在 SO 没有任何意义!
-
好吧好吧。它还将增加您的新问题的可见度,因此对您也更好(我刚刚看到您完全改变了您的问题):)
标签: java regex java.util.scanner