2016-11-12 4 views
0

유효한 문자열을 전달할 때 이 쓰인 isDigit 메서드를 사용하여 allDigits 메서드를 완료해야합니다. 그렇지 않으면 문자열의 모든 문자가 숫자 이면 true를 반환하고 그렇지 않으면 false를 반환합니다.문자열에 모든 숫자가 포함되어 있는지 확인하는 방법

지금까지 내가 가지고 :

public static boolean isDigit (char ch){ 
    if (ch >= '0' && ch <= '9') 
     return true; 
    return false; 
} 

public static boolean allDigits(String s){ 
    for (int i =0; i<s.length(); i++) 
     if(isDigit(s.charAt(i)) == true) 
      return true; 
    return false; 
} 

그러나 단지

public static void main(String[] args) { 
    String s = "abc123"; 
    System.out.println(allDigits(s)); 
} 

가 OUTPUT 말한다면 이것이 사실는 true

그러나 ALSO 거짓

를 반환해야합니다 : 내 코드입니다 실력 있는? 나는 theres 쉬운 방법 같아요. 어떤 도움이 감사 감사

당신은 각 문자를 확인하고 될 경우하지 숫자, 다음, 그렇지 않으면 true를 반환, false를 돌려
+0

숫자가 있는지만 확인하고 있습니다. 모든 숫자가 맞는지 확인하려면 일반적으로 숫자가 없는지 확인하고 대답을 반대로하는 것이 더 쉽습니다. –

+0

이 [여기] (http://stackoverflow.com/questions/273141/regex-for-numbers-only) 달성하는 방법에 대한 좋은 대답이 있습니다. 희망이 도움이됩니다. – kingkeamo

+0

java 정규 표현식을 사용해도 되겠지 만, 문자열 s에만 숫자 –

답변

1

:

public static boolean allDigits(String s) { 
    for (int i=0; i < s.length(); i++) { 
     if (!isDigit(s.charAt(i))) 
      return false; 
    } 

    return true; 
} 

그러나이 처리하는 깔끔한 방법, 무엇을 I 정규 표현식을 사용하는 것입니다 :

public static boolean allDigits(String s) { 
    return s.replaceAll("\\d", "").equals(""); 
} 

위의 방법은 빈 문자열을 모든 숫자로 처리합니다. 빈 문자열을 실패 시키려면이 논리를 가장자리의 경우로 추가하는 것이 쉽습니다.

관련 문제