[英]Java - Scanner doesn't read string with space (Solved)
我试图允许只用字符 a-zA-Z 进行的输入并且还有空间。 示例: “查克·诺里斯”。 下面的代码发生的情况是扫描仪input.next()
不允许提到的示例输入字符串。
我期待这个输出: Success!
但这是实际输出: Again:
try {
String input_nome = input.next(); // Source of the problem
if (input_nome.matches("[a-zA-Z ]+")) {
System.out.print("Success!");
break;
} else {
System.err.print("Again: ");
}
} catch (Exception e) {
e.printStackTrace();
}
问题的根源在于使用的扫描仪方法。
String input_nome = input.next(); // Incorrect scanner method
String input_nome = input.nextLine(); // Correct scanner method
String t = "查克诺里斯";
t.matches("[a-zA-Z]+")
实际上是否返回true。 检查您的输入是否确实是“Chuck Norris”,并确保该空格不是一些奇怪的字符。 此外,您可以使用 \\s 代替空格。 我也推荐 101regex.com
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.