2013-11-15 5 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, чтобы проверить, содержит ли строка любое число? Я попробовал массив купить Я получаю сообщение об ошибке, что «String [] не может быть преобразован в CharSequence»? Любые идеи, пожалуйста?Сканер Java, содержащий номера

+1

Используйте regex ...... – 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

Спасибо, никогда, хотя петля для петли не исправит это :) приветствия! – Arc