2013-11-15 3 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){} 

문자열에 숫자가 포함되어 있는지 확인하려면 어떻게해야합니까? 나는 배열 구입을 시도했다. "String []을 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