我要求用戶輸入他/她的名字。 我該怎麼做,以便數字不會被排除?如何確保用戶不以他/她的名字輸入數字?
String name = " ";
System.out.println("Enter Name");
name = Keyboard.readString();
我要求用戶輸入他/她的名字。 我該怎麼做,以便數字不會被排除?如何確保用戶不以他/她的名字輸入數字?
String name = " ";
System.out.println("Enter Name");
name = Keyboard.readString();
使用正則表達式來檢查輸入和循環得到一個很好的答案:輸入
String name = "";
while (true) {
System.out.println("Enter Name");
name = Keyboard.readString();
if (name.matches("[a-zA-Z]+"))
break;
System.out.println("Invalid input. Enter letters only");
}
boolean numberOrNot = name.matches(".*\\d.*");
numberOrNot
將true
,如果它的名字有任何數量的,否則這將是false
。
正則表達式。 -?\\d+
是一個正則表達式。
-?
:負號,可以有或沒有一個\\d+
:一個或多個數字但是,這是驗證,我不認爲你可以把限制在控制檯上。
你不能讓用戶在控制檯中只輸入字符,在輸入時只能輸入其他字符,但是你可以驗證他的輸入並檢查它是否只包含字母字符,如果輸入無效,請求用戶再次鍵入他的數據。
要檢查是否字符串只包含字母字符,你可以遍歷所有的人物和他們使用Character.isAlphabetic(character)
或者只是使用matches
用正則表達式像這樣的userData.matches("\\p{IsAlphabetic}+");
Character.isAlphabetic
和\\p{IsAlphabetic}
擁有檢查a-zA-Z
範圍的優勢,因爲它會也接受非英文字符,如ą
,ę
。
因爲我是初學者,所以對我使用az範圍..但非常感謝您的幫助 –
@KurtCamilleri歡迎您:) – Pshemo
使用正則表達式。 – Batty
你能告訴我什麼是正則表達式?我是編程新手 –