为了账号安全,请及时绑定邮箱和手机立即绑定

Java - 扫描器不读取带空格的字符串(已解决)

Java - 扫描器不读取带空格的字符串(已解决)

DIEA 2023-05-10 14:23:47
我正在尝试允许仅使用字符 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 methodString input_nome = input.nextLine();        // Correct scanner method说明: https://stackoverflow.com/a/22458766/11860800
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

String t = "Chuck Norris";

t.matches("[a-zA-Z ]+")

实际上是否返回 true。检查您的输入是否确实是“Chuck Norris”,并确保空格不是一些奇怪的字符。您也可以使用 \s 而不是空格。我还推荐 101regex.com



查看完整回答
反对 回复 2023-05-10
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

你可以使用下面的正则表达式

String regx = "^[\\p{L} .'-]+$";

这应该适用于所有场景和 unicode。


查看完整回答
反对 回复 2023-05-10
  • 2 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信