[Java] 문자열이 숫자인지 검증하는 로직

문자열이 숫자인지 확인하는 방법

 String str = "123";
        boolean isNumeric =  str.matches("[+-]?\\d*(\\.\\d+)?");
        System.out.println(isNumeric);  -> true

예제

public class SimpleTesting {

    public static void main(String[] args) {
        String str = "123";
        boolean isNumeric =  str.matches("[+-]?\\d*(\\.\\d+)?");
        System.out.println(isNumeric);  -> true
        str = "121xy";
        isNumeric =  str.matches("[+-]?\\d*(\\.\\d+)?");
        System.out.println(isNumeric); -> false
        str = "0x234";
        isNumeric =  str.matches("[+-]?\\d*(\\.\\d+)?");
        System.out.println(isNumeric); -> false
    }
}

Class를 사용한 문자열이 숫자인지 확인하는 방법

  • Character래스의 isDigit()메서드를 사용하여 루프의 각 문자를 확인할 수 있습니다. true또는 false값을 반환합니다.
public static void main(String[] args) {
        String str = "1123";
        boolean isNumeric = true;
        for (int i = 0; i < str.length(); i++) {
            if (!Character.isDigit(str.charAt(i))) {
                isNumeric = false;
            }
        }
        System.out.println(isNumeric);
    }

Apache 라이브러리를 사용하여 문자열이 숫자인지 확인

import org.apache.commons.lang3.StringUtils;

public class SimpleTesting {

    public static void main(String[] args) {
        String str = "1123";
        boolean isNumeric = StringUtils.isNumeric(str);
        System.out.println(isNumeric);
        str = "123xyz";
        isNumeric = StringUtils.isNumeric(str);
        System.out.println(isNumeric);
    }
}
true
false

Designed by JB FACTORY