我想讓我的代碼阻止用戶輸入數字。如何防止Java中的整數輸入?
基本上我想要的代碼做如下:
- 要求輸入
- 接收輸入
- 測試的輸入是否包含號碼(例如:5matt與馬特)
- 如果包含我想要的數字
System.out.println("Error: please do not input a number");
繼承人踢球者(以及爲什麼它不是一個重複的問題):我可以' t使用循環或我們還沒有學習的其他語句。到目前爲止,我們學到的唯一真實的陳述是if/else/else if語句。這意味着我不能使用for循環,就像一些答案提示的那樣。雖然他們是很好的答案,並且工作,但我會因使用它們而失去點數。
System.out.println("Please input the first name: ");
String name1 = in.next();
System.out.println("Please input the second name: ");
String name2 = in.next();
System.out.println("Please input the third name: ");
String name3 = in.next();
name1 = name1.substring(0,1).toUpperCase() + name1.substring(1).toLowerCase();
name2 = name2.substring(0,1).toUpperCase() + name2.substring(1).toLowerCase();
name3 = name3.substring(0,1).toUpperCase() + name3.substring(1).toLowerCase();
我已經這樣做了,但我無法弄清楚如何測試輸入是否只包含字母。
您應該習慣閱讀[API文檔](http://docs.oracle.com/javase/8/docs/api/index.html)。具體來說,'Character'有一個'isDigit()'方法。 – azurefrog
**或**,像'str.matches(「。* \\ d。*」)'(其中'str'是一個'String')使用*正則表達式*,它會告訴你如果* *字符串包含任何數字。 –
'if(name1.matches(「。* \\ d +。*」)|| name2.matches(「。* \\ d +。*」)|| name3.matches(「。* \\ d +。*」) ){//這裏的東西; } else {// no nums; } [ – px06