2013-11-15 34 views
1
String[] invalidChars = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}; 
     Scanner sc = new Scanner(System.in); 
     try { 
      String country = sc.next(); 
      String state = sc.next(); 
      String city = sc.next(); 

      if(country.contains(invalidChars) || state.contains(invalidChars) || city.contains(invalidChars)) { 

      } 
     } 
     catch(Exception e){} 

如何告訴if語句以檢查字符串是否包含任何數字?我嘗試陣列購買我得到一個錯誤,說「字符串[]不能轉換爲CharSequence」?請有任何想法嗎?Java掃描器,包含數字

+1

使用正則表達式...... – khachik

回答

1

你想使用正則表達式。

yourString.matches(".*\\d.*"); // returns true if the string contains a number 
1

在你的場景中最直接的將是逐個遍歷你的無效字符。

for (String invalidChar : invalidChars) {  
    if(country.contains(invalidChar) || state.contains(invalidChar) || city.contains(invalidChar)) { 

    // do something 
    break; 
    }  
} 

更簡潔的方法是使用正則表達式檢查[0-9]上的匹配。

+0

謝謝,永遠不要for循環會修復它:)乾杯! – Arc