Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 문자열의 첫 번째 문자가 숫자인지 확인하는 방법


isDigit() 메서드 사용하기

java.lang.Character 클래스의 isDigit() 메서드는 문자 하나를 매개변수로 받아 해당 문자가 숫자인지 판별합니다. 주어진 문자가 숫자이면 true를, 그렇지 않으면 false를 반환합니다.

따라서 주어진 문자열의 첫 번째 문자가 숫자인지 확인하려면 다음 단계를 따르면 됩니다.

  • String 클래스의 charAt() 메서드는 인덱스를 나타내는 정수 값을 매개변수로 받아 해당 위치의 문자를 반환합니다.

  • String 클래스의 toCharArray() 메서드는 문자열을 문자 배열로 변환해 반환하므로, array[0]처럼 접근하여 첫 번째 문자를 얻을 수 있습니다.

  • 위 두 메서드 중 하나를 사용해 해당 문자열의 첫 번째 문자를 가져옵니다.

  • 가져온 문자를 isDigit() 메서드의 매개변수로 전달해 숫자인지 여부를 확인합니다.

참고로 str.charAt(0)을 사용하면 문자 배열로 변환하는 과정 없이도 한 줄로 간단하게 처리할 수 있습니다.

예제

import java.util.Scanner;
public class FirstCharacterOfString {
    public static void main(String args[]) {
        // 사용자로부터 문자열 입력받기
        System.out.println("문자열을 입력하세요");
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        // 문자열을 문자 배열로 변환
        char charArray[] = str.toCharArray();
        boolean bool = Character.isDigit(charArray[0]);
        if(bool) {
            System.out.println("첫 번째 문자는 숫자입니다");
        } else {
            System.out.println("첫 번째 문자는 숫자가 아닙니다");
        }
    }
}

실행 결과 1

문자열을 입력하세요
krishna
첫 번째 문자는 숫자가 아닙니다

실행 결과 2

문자열을 입력하세요
2sample
첫 번째 문자는 숫자입니다

정규 표현식 사용하기

String 클래스의 matches() 메서드는 정규 표현식을 매개변수로 받아 현재 문자열과 일치하는지 검사합니다. 일치하면 true를, 그렇지 않으면 false를 반환합니다.

첫 번째 문자가 숫자인 문자열과 일치하는 정규 표현식은 "^[0-9].*$"입니다. 이 정규 표현식을 matches() 메서드의 매개변수로 전달하면 됩니다.

  • ^ : 문자열의 시작을 의미합니다.

  • [0-9] : 0부터 9 사이의 숫자 하나와 일치합니다.

  • .*$ : 그 뒤에 임의의 문자가 0개 이상 이어진 뒤 문자열이 끝남을 의미합니다.

예제

import java.util.Scanner;
public class FirstCharacterOfString {
    public static void main(String args[]) {
        // 사용자로부터 문자열 입력받기
        System.out.println("문자열을 입력하세요");
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        boolean bool = str.matches("^[0-9].*$");
        if(bool) {
            System.out.println("첫 번째 문자는 숫자입니다");
        } else {
            System.out.println("첫 번째 문자는 숫자가 아닙니다");
        }
    }
}

실행 결과 1

문자열을 입력하세요
krishna
첫 번째 문자는 숫자가 아닙니다

실행 결과 2

문자열을 입력하세요
2sample
첫 번째 문자는 숫자입니다

두 방법 모두 동일한 결과를 얻을 수 있습니다. 단순히 첫 문자만 빠르게 확인할 때는 isDigit() 메서드가 더 직관적이고 성능 면에서 유리하며, 숫자로 시작하는지 여부뿐 아니라 더 복잡한 패턴까지 함께 검증해야 할 때는 정규 표현식이 유용합니다.