본문 바로가기
일상 기술노트/코딩

숫자 검증 알고리즘

by 인디코더 2019. 1. 26.

숫자 검증 알고리즘.

1. 예외처리 이다. 

숫자가 아니면 NumberFormatException을 이용하는 방법을 알아두자

2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
  public boolean solution(String s) {
      if(s.length() == 4 || s.length() == 6){
          try{
              int x = Integer.parseInt(s);
              return true;
          } catch(NumberFormatException e){
              return false;
          }
      }
      else return false;
  }
}


2. import 방식과 정규식 표현이다.

import java.util.*;

class Solution {
  public boolean solution(String s) {
        if (s.length() == 4 || s.length() == 6) return s.matches("(^[0-9]*$)");
        return false;
  }
}


정규식 표현으로 (^[0-9]+$) 을 알아두자.
import java.util.*;



정규식을 해석해 보자면 ..

1
2
3
4
5
6
[ 정규식 해석 ]

^ 으로 우선 패턴의 시작을 알립니다.
[0-9] 괄호사이에 두 숫자를 넣어 범위를 지정해줄 수 있습니다.
* 를 넣으면 글자 수를 상관하지 않고 검사합니다.
$ 으로 패턴의 종료를 알립니다.
 
출처: https://highcode.tistory.com/6 [HighCode]
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
[자주 쓰이는 패턴]
 
1) 숫자만 : ^[0-9]*$
2) 영문자만 : ^[a-zA-Z]*$
3) 한글만 : ^[가-힣]*$
4) 영어 & 숫자만 : ^[a-zA-Z0-9]*$
5) E-Mail : ^[a-zA-Z0-9]+@[a-zA-Z0-9]+$
6) 휴대폰 : ^01(?:0|1|[6-9]) - (?:\d{3}|\d{4}) - \d{4}$
7) 일반전화 : ^\d{2,3} - \d{3,4} - \d{4}$
8) 주민등록번호 : \d{6} \- [1-4]\d{6}
9) IP 주소 : ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3})
 
출처: https://highcode.tistory.com/6 [HighCode]
cs

꼭 기억하기 ~ 
출처 : https://highcode.tistory.com/6
출처 : https://programmers.co.kr/learn/courses/30/lessons/12918/solution_groups?language=java


반응형