2013-07-09 49 views
0

我想申請2個條件:一次讀一個字符,並要求對同一掃描儀輸入字母字符輸入:的Java:使用2個表達式1臺掃描儀輸入

如何應用這些條件的任何建議和繼續檢查每個字符的用戶輸入?

Scanner lastname = new Scanner(System.in); 
System.out.println("Please enter the first letter of last name:"); 
lastname.useDelimiter("(?<=.)"); 
if (lastname.hasNext()) 
    System.out.println("character: [" + lastname.next() + "]"); 
if (!lastname.hasNext("[A-Za-z]+")); { 
    System.out.println("You are not a robot so do not use numeric characters."); 
    System.out.println("Please enter letter:"); 
    lastname.next(); 

回答

0

不要改變分隔符;改變你的邏輯。

始終只讀取一個字符,但使用這樣的代碼進行測試:

String s = scanner.next(); 
if (Character.isDigit(s.charAt(0))) 

或使用正則表達式:

if (s.matches("[a-zA-Z]+")) 
+0

謝謝。我添加了正則表達式示例。對於如何允許輸入多個字符但一次顯示1,你有什麼建議嗎?例如,如果用戶輸入R123o456b45輸出將顯示: – user2558595

+0

不要設置分隔符。只需使用'.hasNextLine()'和'.nextLine()',用戶必須按下回車鍵才能輸入程序,這是命令行輸入的常用方式。 – Bohemian