feed twitter facebook LinkedIn facebook

Java » Java y la palabra más larga de una frase

Agosto 26, 2007 por Víctor Cuervo . 15456 visitas 10 Comentarios Imprimir Imprimir

El otro día, uno de nuestros visitantes nos preguntaba como podía hacer un código que le localizase la palabra más larga de una frase con Java. Y porqué no ayudarle, si era un código muy sencillo y que seguro podrá ayudar a más gente.

Lo más recomendable es empezar leyéndose dos artículos: Contar palabras en Java y Contador de ocurrencias en Java. Estos nos explican como se pude saber cuantas palabras componen una cadena y cuales son. Uno de ellos mediante el uso del StrinkTokenizer y el otro mediante .indexOf().

Ahora vemos como saber cual es la palabra más larga de una frase. La idea es sencilla, iremos recorriendo todas las palabras de la frase y mientras las recorremos veremos cual de ellas es la de mayor tamaño.

Inicialmente definimos que la palabra mayor es vacía y con tamaño 0.

String palabraMasGrande = "";
int palabraMasGrandeSize = 0;

Por otro lado, partimos la cadena con el texto en las palabras que la conforman. Esto lo hacemos mediante la clase StringTokenizer.

StringTokenizer stTexto = new StringTokenizer(sTexto);

Ahora recorremos el StringTokenizer para analizar las palabras.

int palabras = stTexto.countTokens();

for (int x=0;x><palabras;x++){
	sCadena = stTexto.nextToken();
  	System.out.println(sCadena);
}

Dentro del bucle tenemos que analizar la palabra. Si el tamaño de la palabra, que obtenemos mediante el método .length(), es mayor que el tamaño de la palabra más grande, entonces nos guardamos la palabra actual y su método.

int palabras = stTexto.countTokens();

for (int x=0;x<palabras;x++){
	sCadena = stTexto.nextToken();
    	if (sCadena.length() > palabraMasGrandeSize){
    		palabraMasGrande = sCadena;
    		palabraMasGrandeSize = sCadena.length();
   	}
}

Visualizar el ejemplo | Descargar el código

tags: , , , , , ,

Artículos relacionados:

10 comentarios »

Redifusión RSS de los comentarios de la entrada. TrackBack URI

  1. Marckos
    Agosto 27, 2007 #

    OE LA VERDAD BUENAZO TU BLOG! ME INTERESA MUCHO TU PLANTILLA ME LA PODRIAS MANDAR SI ME AGREGAS SERIA VACAN FAZNET@HOTMAIL.COM

  2. felix
    Octubre 10, 2007 #

    hola.saludes.

    quisiera saber como hago para llamar un metodo que se encuentra en una clase, y quiero mandar a llamar ese metodo pero en otra clase, pero ese metodo despues de mandarlo a llamar me aparesca dentro de un arreglo. es sobre arreglos objetos y metodos. si pudiera darme a lgun ejemplo se agradeceria mucho.

  3. felix
    Octubre 11, 2007 #

    hola de nuevo.

    me dejaron un ejercicio sobre string que tiene 9 caracteres, de los cuales 8 son numeros y el ultimo una letra. me piden que que esos que esa string es correcto o no. si lo es mostrara por consola su parte ademas su parte numerica y si no solo su parte nuemerica. quisiera saber que metodos de la string puedo utilizar. se lo agradeceria mucho.

  4. Oscar
    Febrero 22, 2008 #

    Como le puedo hacer para Realizar una función, a la cual se le pasen dos cadenas de caracteres (s1 y s2) como parámetro y regrese el numero de veces que aparece la cadena s1 en la cadena s2.

  5. MARCELO
    Mayo 25, 2008 #

    oye mecetiso que me ayuden hacer un programa de notacion polaca please con el uso de Stack porfa ayudame .
    Me dejaron un Ejercicio, pero el maestro nunca nos explico NADA sobre esto, dice:

    Sea la exprecion:

    3 + ( 4 * a) – ( 2 * b )

    Utilizando una pila:
    A) Definir estructura que debe de usarse
    B) Definir pila
    C) Determinar secuencia de operacion push / pop para
    evaluar la expresion con notacion polaca infija,
    posfija y prefija

    Me podrias ayudar a resolver esto?
    ó explicar como podria resolverlo. Porfavor Estoy Desesperado

    eljuezdelavida@hotmail.com si alguien me puede ayudar

  6. marco
    Octubre 8, 2008 #

    necesito un programa en java q´utilize el procedimiento polaca utilizando notacion posfija y n. infija

  7. Carlos
    Septiembre 9, 2009 #

    Hola, quisiera saber como retornar la palabra mas grande en un metodo, me pide que sea int y no se como plantearlo exactamente:
    public int palabraLarga(String texto) {
    StringTokenizer palabras = new StringTokenizer(texto);
    String sCadena;
    String palabraMasGrande = “”;
    int palabraMasGrandeSize = 0;

    int palabrasMuch = palabras.countTokens();

    for (int x = 0; x palabraMasGrandeSize) {
    palabraMasGrande = sCadena;
    System.out.println(sCadena);
    }
    }
    return Integer.parseInt(palabraMasGrande);
    }

    Asi me bota erro, gracias de antemano.

  8. Andres Ruiz
    Octubre 17, 2010 #

    hola, necesito por favor una ayuda, tengo q hacer un ejercicio en donde se cuentes las letras de una palabras y no se como hacerlo….
    les agradesco su ayuda.

  9. Daniel
    Octubre 20, 2011 #

    Hola muy buena tu pagina! pero tengo una duda que seria utilizar mejor un countoken() o .length() para contar las palabras en un string?. o en que casos usar cada uno ? o que ventajas o diferencias tiene estos metodos
    Estoy haciendo un analizador lexico en java y no estoy muy seguro de que usar

  10. Palabras que mas se repiten en un texto txt « Dudas de Programacion
    Mayo 15, 2012 #

    [...] El código para encontrar la palabra más larga de una frase lo tienes en http://lineadecodigo.com/java/java-y-la-palabra-mas-larga-de-una-frase/ [...]

Deje un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*