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

Java 정규식으로 각 단어의 첫 글자만 추출하는 방법

정규식에서 메타 문자 \b는 단어의 경계(word boundary)를 의미하고, [a-zA-Z]는 영어 알파벳 한 글자(대문자와 소문자 모두 포함)와 일치합니다. 따라서 이 두 가지를 조합한 표현식 \b[a-zA-Z]는 모든 단어 경계 바로 뒤에 위치한 알파벳 한 글자, 즉 각 단어의 첫 글자와 일치하게 됩니다.

구현 절차

Java에서 각 단어의 첫 글자를 추출하려면 다음 단계를 따르면 됩니다.

  • Pattern 클래스의 compile() 메서드를 사용하여 위 정규식을 컴파일합니다.

  • Pattern 클래스의 matcher() 메서드에 입력 문자열을 매개변수로 전달하여 Matcher 객체를 생성합니다.

  • find() 메서드로 일치 항목을 순회하면서, group() 메서드를 호출해 매칭된 문자를 가져옵니다.

예제 코드

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FirstLetterExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("샘플 텍스트를 입력하세요: ");
        String data = sc.nextLine();
        String regex = "\\b[a-zA-Z]";
        // Pattern 객체 생성
        Pattern pattern = Pattern.compile(regex);
        // Matcher 객체 생성
        Matcher matcher = pattern.matcher(data);
        System.out.println("입력 문자열에서 각 단어의 첫 글자: ");
        while(matcher.find()) {
            System.out.print(matcher.group()+" ");
        }
    }
}

실행 결과

샘플 텍스트를 입력하세요:
National Intelligence Agency Research & Analysis Wing
입력 문자열에서 각 단어의 첫 글자:
N I A R A W

위 예제에서 볼 수 있듯이, 입력된 문장의 각 단어에서 첫 글자만 골라내어 공백으로 구분해 출력됩니다. 이 기법은 이니셜 추출, 약어 자동 생성 등 다양한 텍스트 처리 작업에 활용할 수 있습니다.