Primera letra de cada palabra con Java

05/Jul/2017 Java , 8 Comentarios
Programación en Java

Nos preguntaban en el foro sobre cómo se podía obtener la primera letra de cada palabra con Java. Es decir, dada una frase, como obtener la primera letra de cada una de las palabras que componen dicha frase.

Para poderlo llevar a cabo, lo primero que tenemos que tener, lógicamente, es la frase:

String sTexto = "En un lugar de la mancha";

Lo que vamos a hacer, para obtener cada una de las palabras es trocearlo. Para ello nos apoyamos en la clase StringTokenizer, la cual, dada una cadena, obtiene las subcadenas separadas por un separador pasado por parámetro. En el caso de que no indiquemos el separador utilizará el espacio.

StringTokenizer stPalabras = new StringTokenizer(sTexto);

Ahora que ya tenemos las palabras de la frase cargadas en el StringTokenizer lo que tenemos que hacer es ir recorriendo dicho StringTokenizer para analizar cada una de las palabras y quedarnos con su primera letra.

Nos apoyaremos en los métodos .hasMoreTokens() y .nextToken() para recorrer los elementos del StringTokenizer.

while (stPalabras.hasMoreTokens()) {
  sPalabra = stPalabras.nextToken();
}

Cada uno de los token devueltos por .nextToken() representa una de las palabras de la frase. Es por ello que si queremos quedarnos con la primera letra de la palabra simplemente tendremos que obtener una subcadena.

La subcadena la obtenemos mediante el método .substring()

while (stPalabras.hasMoreTokens()) {
  sPalabra = stPalabras.nextToken();
  System.out.println(sPalabra.substring(0,1));
}

De esta forma habremos conseguido imprimir por pantalla la primera letra de cada palabra con Java.

Vídeos sobre Java


8 comentarios en “Primera letra de cada palabra con Java”

Víctor Cuervo

VANESSA

hola tengo este codigo : ( aclaro estoy recien empezando JAVA)

ME PIDE INGRESAR UN NUMERO ENTERO Y QUE LO IMPRIMA.. EJ ) 321, LUEGO 32 Y POR ULTIMO 3 ..Y QUE ME CUENTE LA CANTIDAD DE DIGITOS(ESO ME SALIO JAJA ).. LA CUESTION ES ..QUE ESTE CODIGO ME IMPRIME  321,21,1 ES DECIR AL REVES… ME PUEDEN DECIR EN QUE FALLO ?

public class Ejercicio1

{

static Console c;

 

public static void main (String[] args)

{

String cadena, ca, cad = «»;

int cant;

cant = 0;

 

 

 

c = new Console ();

 

 

c.print («Ingrese Numeros :  «);

ca = c.readLine ();

c.println ();

 

cant = ca.length ();

 

for (int i = 0 ; i<=cant ; i++)

{

 

c.print (ca.substring (i));

 

c.println ();

 

 

}

 

 

c.println ();

c.print («El numero que ingresaste tiene  » + cant + »  digitos «);

c.println ();

}

}

Víctor Cuervo

garcheck

Hola necesito ayuda con un programa que solicite un nombre completo e imprima solo las iniciales ejemplo:

Fernando Alvarez Ocampo

resultado: FAO

 

Víctor Cuervo

Rosa

Si lo quiero realizar en lenguaje c, ¿Cómo sería?

Víctor Cuervo

Alex

y si lo quiere hacer pero con angular js?

Víctor Cuervo

Felix

y que hay, si queremos que el usuario ingrese la cadena?

Víctor Cuervo

Felix del futuro

Es igual, asegurate de estar usando el «nextLine();» ya que el «next();» no detecta espacios

Víctor Cuervo

DAVID RICARDO SANCHEZ CASARRUBIAS

Felix del futuro ayudame a hacer un programa de una curp

Víctor Cuervo

Bryan

Genial, muy bueno para los que recién estamos aprendiendo a programar en Java.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.