Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 정규식을 사용하여 각 단어의 첫 글자를 얻는 방법은 무엇입니까?

<시간/>

메타 문자 "\b "는 단어 경계와 일치하고 [a-zA-Z]는 영어 알파벳의 한 문자와 일치합니다(두 경우 모두). 간단히 말해 \\b[a-zA-Z] 표현식은 모든 단어 경계 뒤의 두 경우 모두 영어 알파벳의 단일 문자와 일치합니다.

따라서 각 단어의 첫 글자를 검색하려면 -

  • Pattern 클래스의 compile() 메서드의 위 식을 컴파일합니다.

  • Pattern 클래스의 matcher() 메서드에 대한 매개변수로 필요한 입력 문자열을 무시하고 Matcher 객체를 가져옵니다.

  • 마지막으로 각 일치 항목에 대해 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("Enter sample text: ");
      String data = sc.nextLine();
      String regex = "\\b[a-zA-Z]";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Creating a Matcher object
      Matcher matcher = pattern.matcher(data);
      System.out.println("First letter of each word from the given string: ");
      while(matcher.find()) {
         System.out.print(matcher.group()+" ");
      }
   }
}

출력

Enter sample text:
National Intelligence Agency Research & Analysis Wing
First letter of each word from the given string:
N I A R A W