2012년 5월 2일 수요일

[java] 숫자 판별 (전화번호)


프로젝트중에 랜덤으로 받는 데이터들을 webview로 만든 화면에 보여주는 중에
전화번호인 녀석들은 선택했을때 발신 처리를 해야 했다.
삼성에서 만든 갠역시류의 디바이스는 요처리를 자동으로 해주는 통에 신경안쓰고 있었다가,
다른 아이들이 무반응이길래 후다닥... (근데 저 녀석들은 모든 숫자에 다 발신처리를 해준다.
발신할수 없는 숫자 길이여도;)

뭐 안드로이드 웹뷰에서 발신 처리 하는거야 해당 문자를 <a> 태그를 이용해서
지정 url에 tel:전화번호 라고 쓰고 해당 웹뷰의 WebViewClient 에서 shouldOverrideUrlLoading를 오버라이드 해서 받은 url을 발신처리해주면 그만이다.
예) <a href="tel:010*******">010********</a> 뭐 이런 형태!

그런데 요녀석이 전화번호인지 아닌지를 판별하기 위해서 간단한 메소드를 만들었다.
본인은 8자리 미만의 숫자는 발신처리 하지 않도록 하기 위해서 해당 분기문을 넣었지만,
숫자 판별만 필요한 사람이라면 이 분기문을 빼고 사용하면 된다.

     /**
      * 전화번호 판별
      *  : 0~9이외의 문자일 경우 false 반환
      *  : 자리수가 8자리 미만의경우 false 반환
      */
     public boolean isTelNumber(String number) {
         boolean numFlag = true;
         // 널체크
         if (isEmpty(number))
             return false;

         int size = number.length();
         // 자리수 판별
         if (size < 8) {
             numFlag = false;
         } else {
             // 숫자 판별 : 0~9 이외의 문자는 false
             for (int i=0 ; i<size ; ++i) {
                 if (!(48 <= (int)number.charAt(i) && 57 >= (int)number.charAt(i))) {
                     numFlag = false;
                     break;
                 }
         }
       
         return numFlag;
     }


위에서 사용한 isEmpty 메소드도 널체크를 위해 내가 만들어 놓은 녀석
심플하니 여기저기 많이 불리고 있다규!!
    /**
     * 공문자 체크
     */
    public static boolean isEmpty(String str) {
        return (str == null || str.equals("")) ? true : false;
    }

댓글 없음:

댓글 쓰기

++ 블로그 무단납치 아니아니 아니되오!! 얘기는 하고 델꾸가시오!! ++