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

¿Cómo obtener la primera letra de cada palabra usando expresiones regulares en Java?

El carácter especial “ \ b ”Coincide con el borde de palabra, [a-zA-Z] Coincide con un carácter de letra inglesa (dos casos). En resumen, la expresión\ \ b [a-zA-Z] Coincidir con un solo carácter de letra inglesa, estos dos casos están después de cada borde de palabra.

Por lo tanto, para recuperar la primera letra de cada palabra-

  • Compilarcompile()La expresión de método Pattern superior.

  • Saltar la cadena de entrada necesaria comomatcher()Los parámetros del método Pattern, obtienen el objeto Matcher.

  • Finalmente, para cada coincidencia, mediante la llamadagroup()método para obtener los caracteres coincidentes.

Ejemplo

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("Ingrese texto de muestra: ");
      String data = sc.nextLine();
      String regex = "\\b[a-zA-Z]";
      //Crear un objeto patrón
      Pattern pattern = Pattern.compile(regex);
      //Crear un objeto Matcher
      Matcher matcher = pattern.matcher(data);
      System.out.println("Primera letra de cada palabra de la cadena dada: ");
      while(matcher.find()) {
         System.out.print(matcher.group())+"");
      }
   }
}

Resultado de salida

Ingrese texto de muestra:
Vuelo de Investigación y Análisis de la Agencia de Inteligencia Nacional
Primera letra de cada palabra de la cadena dada:
N I A R A W
Te gustará