我試圖讓一個Java正則表達式的工作使用Scanner
System.in
功能,試圖驗證用戶輸入。我想驗證的是隻能包含字母作爲輸入的用戶輸入,並且可以包含多個單詞。如果我的例子(「測試1」)中鍵入它會拋出一個信息,警告我必須輸入字母,並提示在重新進入,但是如果我可以鍵入(「測試1」),那麼它會通過我的正則表達式,這似乎是空間導致這個問題,但在我的正則表達式中添加一個空間還沒有解決我的問題。任何幫助將不勝感激。下面是我的代碼是有問題的部分:Java的掃描儀hasNext()字符串的正則表達式驗證
System.out.println("Please enter the your name: ");
while(!input.hasNext("[a-zA-Z]+")){
System.out.println("Your name must consist of only letters");
input.nextLine();
}
String name = input.nextLine();
這可能是明顯錯誤的人,但我是新來的Java和正則表達式,並一直在試圖找出一整天一直與去錯了什麼沒有成功。
謝謝您的時間。
嘗試'^ [a-zA-Z_] * $'這並不完美,但它很簡單足以讓新手理解。 – TEK
也許'^ [a-zA-Z_] + $'這樣空字符串是不允許的。 – totoro