본문 바로가기

Java

[JAVA] isNumber / isNumeric 문자열(String)이 숫자인지 확인하는 함수

 

- 자바에서 String이 numeric인지 확인하는 두 가지 방법 -

입력 받은 String이 숫자이면 이렇게 처리하고,
연산 기호면 저렇게 처리하려고 한다.
그러려면 우선 입력 받은 String이 숫자인지 아닌지 확인해야 한다.

- 방법1 -

Charactrer에는 숫자인지 확인하는 함수가 있다.
이 함수를 쓰려면 String을 한 글자씩 쪼개서 
Character에 넣고 isDigit 함수를 한 번씩 돌려 봐야 한다.
예를 들어 아래와 같다.

    String target = "1948172abc";
    Boolean flag = true;
    for(int i=0; i < target.length(); i++) {
        if(!Character.isDigit(target.charAt(i))) {
            result = false;
        }
    }
    if(flag) {
        System.out.println(target + " is number");
    } else {
        System.out.println(target + " is not number");
    }




- 방법2 -

정규 표현식으로 확인하는 방법도 있다.
String에는 그 값이 주어진 정규식과 부합하는지 확인하는 함수가 있다.
String.matches(REGEX);
숫자를 정규 표현식으로 정의해 놓고,
그 정규 표현식을 파라미터로 넘겨주면 된다.

    final String REGEX = "[0-9]+";
    String target = "1948172abc";
    if(target.matches(REGEX)) {   
        System.out.println(target + " is number");
    } else {
        System.out.println(target + " is not number");
    }

 

개인적으로는 아래쪽 방법2가 훨씬 깔끔해 보이고

사고 방식도 편해서 더 많이 쓴다.

반응형