English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 프로세스 제어

Java 배열

Java 오브젝트 지향적(I)

Java 오브젝트 지향적(II)

Java 오브젝트 지향적(III)

Java 예외 처리

Java 리스트(List)

Java Queue(큐)

Java Map 집합

Java Set 집합

Java 입력/출력(I/O)

Java Reader/Writer

Java 다른 주제

Java 프로그램에서 문자열이 숫자인지 확인

Java 예제 모든 것

이 프로그램에서는 Java에서 문자열이 숫자인지 여러 가지 방법을 배웁니다.

예제1문자열이 숫자인지 확인합니다

public class Numeric {
    public static void main(String[] args) {
        String string = "12345.15";
        boolean numeric = true;
        try {
            Double num = Double.parseDouble(string);
        }
            numeric = false;
        }
        numeric)
            System.out.println(string + " 은 숫자");
        else
            System.out.println(string + "  아니요, 숫자가 아닙니다");
    }
}

프로그램을 실행할 때, 출력은 다음과 같습니다:

12345.15 는 숫자

위 프로그램에서 string이라는 문자열(String)가 확인할 문자열을 포함하고 있습니다. 또한, boolean 값 numeric이 최종 결과가 숫자인지 저장됩니다.

문자열이 숫자로만 구성되었는지 확인하기 위해 try 블록에서 Double의 parseDouble() 메서드를 사용하여 문자열을 Double로 변환합니다

에러를 투척하면 (NumberFormatException 에러를 의미합니다) string이 숫자가 아니며 numeric을 false로 설정합니다. 그렇지 않으면 이는 숫자입니다.

하지만, 여러 문자열을 확인하려면 함수로 변경해야 합니다. 그리고 이 로직은 예외를 투척하는 데 기반하고 있으며, 매우 비용이 많이 들 수 있습니다.

반대로, 정규 표현식의 기능을 사용하여 문자열이 숫자인지 확인할 수 있습니다. 다음과 같이 합니다.

예제2정규 표현식(regex)를 사용하여 문자열이 숫자인지 확인합니다

public class Numeric {
    public static void main(String[] args) {
        String string = "-1234.15";
        boolean numeric = true;
        numeric = string.matches("-?\\d+(\\.\\d+?)";
        numeric)
            System.out.println(string + " 은 숫자");
        else
            System.out.println(string + "  아니요, 숫자가 아닙니다");
    }
}

프로그램을 실행할 때, 출력은 다음과 같습니다:

-1234.15 는 숫자

위의 프로그램에서는 regex를 사용하여 string이 숫자인지 확인하고 try를 사용하지 않습니다.-catch 블록. 이는 String의 matches() 메서드를 사용하여 완료됩니다。

matches() 메서드에서

  • -?     允许零或更多-문자열의 음수에 사용

  • \\d+ 문자열이 적어도1개나 더 많은 숫자(\\d)。

  • (\\.\\d+)? 지정된 패턴(\\.\\d+)에서

    • \\. 문자열이 .(소수점)를 포함하는지 확인

    • 그렇다면, 적어도 하나 이상의 숫자\\d+。

Java 예제 모든 것