我有一个用Java编写的简单程序,我试图找到一种方法来验证在用户在控制台中点击“enter”之前已经输入了任何内容。目前,我正在使用isLetter()来确保输入了一个字母,但这似乎并没有阻止某人输入任何内容并点击输入。我在文档中尝试了几种方法,似乎无法找到一种有效的方法。
对于下面的代码片段,我展示了我是如何成功地谴责输入变量“letter”是单个字符,并且始终是单个字符,但这并不妨碍用户点击“输入” “没有打字之后。
if (! Character.isLetter(letter)) { //Don't forget to validate for no chars entered!
throw new IllegalArgumentException("A letter is required");
答案 0 :(得分:1)
点击 Enter 将produce the carriage-return symbol,所以你可以做这个比较:
if (letter != '\r' && letter != '\n') { ... }
答案 1 :(得分:0)
由于您正在使用readLine()
来电,并且readLine()
来电通常不会在返回值中包含行终止字符,您为什么不这样做:
if (!yourInput.equals("")) {/* code */}
事实上,您甚至可以在尝试charAt(0)