我正在嘗試允許僅使用字符 a-zA-Z 并且還具有空格的輸入。示例:“查克諾里斯”。 下面的代碼發(fā)生的情況是掃描器input.next()不允許上述示例輸入字符串。我期待這個(gè)輸出:Success!但這是實(shí)際輸出: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();}解決方案問(wèn)題的根源是使用的掃描儀方法。String input_nome = input.next(); // Incorrect scanner methodString input_nome = input.nextLine(); // Correct scanner method說(shuō)明: https://stackoverflow.com/a/22458766/11860800
2 回答

泛舟湖上清波郎朗
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
String t = "Chuck Norris";
t.matches("[a-zA-Z ]+")
實(shí)際上是否返回 true。檢查您的輸入是否確實(shí)是“Chuck Norris”,并確保空格不是一些奇怪的字符。您也可以使用 \s 而不是空格。我還推薦 101regex.com

侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
你可以使用下面的正則表達(dá)式
String?regx?=?"^[\\p{L}?.'-]+$";
這應(yīng)該適用于所有場(chǎng)景和 unicode。
添加回答
舉報(bào)
0/150
提交
取消