Contar palabras en Java

26/ene/2007 Java 41 Comentarios
java

La idea del ejemplo es ver como podemos contar las palabras de un texto en Java. Podríamos hacerlo de diferentes formas, pero vamos a utilizar la clase StringTokenizer para solucionar nuestro problema.

Lo primero que tenemos que hacer es definir una frase dentro de una cadena de texto:

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

La clase StringTokenizer trocea una cadena a partir de un deliminator dado. En el caso de que no le indiquemos el indicador a usar utilizará el espacio en blanco. Veamos como se utilizaría con la frase anterior:

Una vez creado el StringTokenizer (es como un Enumerado) podremos recorrerle para ver en cuantas palabras ha troceado nuestro texto o bien invocar al método .countTokens() que devuelve el número de elementos que contiene el StringTokenizer.

Y simplemente nos quedará volcarlo por pantalla:

  1. System.out.println (st.countTokens());

Vídeos sobre Java Básico

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

41 comentarios en “Contar palabras en Java”

Víctor Cuervo

JuanGodoy

Hola a todos,
tengo una duda, dice que si no se define un delimitador toma el espacio, como se define el delimitador para que me diga, por ejemplo, cuantas veces se repite un caracter en un string
ayuda plese

Víctor Cuervo

hugo

alguien me puede ayudar toy haciendo un compilador lexico!!! mas bien es un compilador en donde entra el lexico,sintactico y semantico …. ya tengo el lexico y sintactico solo me gustaria saber como le puedo hacer para que… me indica la linea en donde se encuentra un error inesperado

Ejemplo:
si no se le metio una coma o un punto donde deveria ir entonces que me arroge un mensaje indicando el que parte del codigo introducido por el usuario!!! esta el erro y que diga se esperaba una coma o un punto o x palabra!! porfaAA

Víctor Cuervo

Javier

que retorna el countTokens() al estar el archivo de texto vacío?

Víctor Cuervo

Andrés Ortiz

Hola
Tengo un problema…
Cómo contar las palabras desde java de documentos pdf y .doc.
espero me puedan ayudar…

Víctor Cuervo

javier

hola muy bueno su aporte, quisiera que me ayuden con mi trabajo

bueno este es el caso..
necesito un codigo que me diga cual es la letra mas repetida de la palabra…… me haran un gran favor..

Víctor Cuervo

IAP

como puedo hacer para que tambien me imprima los delimitadores en renglones diferentes, supongamos que la cadena a separar es la siguinte: alksjdlkj/kjalsdjlk/ahksjd

y se requiere que el programa lo imprima de la siguiente manera:

alksjdlkj
/
kjalsdjlk
/
ahksjd

Otra cosa, por que cuando lo implemento con ficheros solo me separa la ultima linea??

Víctor Cuervo

MaTy

uy me falto aclarar… la frase tiene que estar terminada en punto.. sino no sirve.. yy el
“frase=TecladoIn.readLine()”

eso es para que lea lo que escribio.. uds pongan systemIn

Víctor Cuervo

MaTy

hola que tal!! ..

No sabía que se existía la clase StringTokeinzer, sino me hubiera resultado más facil hacerlo. Bueno, para los que quieran saber cómo se hace esto sin usar esa clase.. aquí va el código:

public static void main(String []arg)
{
String frase;

System.out.println(“Ingrese una frase: “);
frase=TecladoIn.readLine();

int i=0;
int palabras=0;

while(i !=(-1)){
i=frase.indexOf(” “,i+1);
palabras++;
}

System.out.println(“Hay “+palabras+” palabras en la frase ingresada”);

}

Víctor Cuervo

lineadecodigo

@Hector Alberto,

Te hemos publicado el artículo que explica como extraer la información separada por delimitadores

http://lineadecodigo.com/java/extraer-contenido-separado-por-delimitadores-con-java/

Espero que te ayude.

Víctor Cuervo

luis

que tal, oye, nesecito un programa q me simule un compilador especificando q linea quiero compilar, es decir,

si quiero compilar la linea de codigo:
System.out.print( “con cualquier texto aqui” );

por ejemplo yo pongo
System.out.print( “Introduce la linea que deceas compilar” );
aqui yo esctribiria la linea de codigo
System.out.print( “con cualquier texto aqui” );

y el programa me tiene q decir si esta bn escrita o no, es decir, la sintaxis del codigo. tal como lo hace el compilador.
ps si pueden ayudarme
espero su respuestas oks
grasias

locc_7@hotmail.com

Víctor Cuervo

cofla

necesito hacer un codigo que al introducir un texto o palabra en un area de texto y en otra area de texto coloque una letra me o palabra me la busque…….en la primera …..!”·!”·!·
como lo hago..
ayuda
martin.nieto_g16@hotmail.com

Víctor Cuervo

lineadecodigo

@Rito,

Hemos publicado el ejemplo de como Invertir una frase mediante una pila. Espero que te sea de ayuda.

Víctor Cuervo

lineadecodigo

@hector alberto,

Puedes utilizar el StringTokenizer con un delimitador. En tu caso un punto.

El código quedaría así:
StringTokenizer st = new StringTokenizer(sTexto,”.”);

Víctor Cuervo

lineadecodigo

@Pidalgo,

Te voy contestando por partes.

  1. El package com.lineadecodigo… es una forma de organizar el código de la página. Si visitas el repositorio de código java de lineadecodigo.com podrás ver cómo se organizan los ejemplos en paquetes.
  2. java.lang es el paquete dónde está la clase String. Aunque lo más cómodo es escribirlo como tú dices con el String, en vez de con java.lang.String. Aunque sirven los dos.
  3. La verdad que viendo las variables no he utilizado unos nombres muy apropiados. El StringTokenizer es ST, mientras que el texto es S. Pero al verlas juntas parece la misma variable. La clase StringTokenizer recibe la clase String que quiere partir. StringTokenizer es una clase diferente a String. Es por eso que hay que instanciarla.

Espero que las aclaraciones te hayan ayudado.

Víctor Cuervo

lineadecodigo

@Manuel Luis Morales,

Ese código genera un “Hola Mundo” en pantalla. Tienes una explicación detallada en el artículo:

Hola Mundo en Java

Espero que te sirva.

Víctor Cuervo

Manuel Luis Morales

Interpreten este codigo, y quiero que me digan que imprime, o me lo envien a mi correo electronico.

public class HolaMundo
{
public static void main(String[]args)
{
System.out.println(“Hola Mundo”);
}
}

Víctor Cuervo

Pidalgo

hola a todos tengo varias dudas es que soy principiante en java
ps laprimera es esta linea que importa o que es lo que hace
—-package com.lineadecodigo.java.string;——
la segunda es que me dijeron que el main lleva una sintaxis y que no se puede cambiar o por que pusiste (java.lang.String[] args) es lo mismo que solo poner (String args[])
——–public static void main(java.lang.String[] args)—–
y por ultimo creas un objeto de la clase StringTokenizer como para que??? digo si ya importaste la clase acaso no tienes acceso directo a sus metodos… o mejor dicho por que le envias como argumento la casena stTexto y luego llamas al objeto con el mismo nombre??? para que o no entiendo….
—-StringTokenizer stTexto = new StringTokenizer(sTexto);—-
ps de antemano gracias por mostrar estas pequeñas clases…

Víctor Cuervo

minerva

Hola que tal me gustaria saber como puedo hacer una funcion en java para que me cuente las lineas de codigo logico (cuantos for, while existen en el archivo) de un archivo .java que de igual modo tendré que leer.

Víctor Cuervo

Rito

Hola Quisiera Saber como le puedo hacer para por medio de uso de Pilas en java, ingresar una frase, guardarla en la pila, y que me devuelva la misma frase pero inversa, se que es tan simple como meter la frase a la pila con push(), y sakar la frase con el pop(), y quedara inversa, pero no tengo la menor idea de como implementarlo bien en java, y supongo que con el metodo Stringtokenizer puedo lograr algo, ojala puedan ayudarme

Víctor Cuervo

Luis Alejandro Velázquez Macías

HOLA, NECESITO SABER COMO PUEDO CONTAR LAS LINEAS DE CADA METODO CON UN PROGRAMA HECHO EN JAVA………….ALGUIEN QUE ME ORIENTE POR FAVOR

Víctor Cuervo

Ricardo

quisiera saber si alguien me podria ayudar , la verdad lo que necesito es de suma importancia para mi , lo que pasa es que estoy obteniendo de un archivo de texto y lo convierto a string , eso esta bine ,pero lo que encesito es dividir el String por medio de tokens , el string tokenizer te los divide por un determinante no por varios , y el split por funcion regex, y en regex no le indicas tu cuakl detemrinante lo toma default por las funciones que tiene , lo que yo quiero es controlar por medio de un arreglo, los determionantes, ahi va algo para que se dne una idea , de lo que quiero .

StringTokenizer palabras=new StringTokenizer(Linea de texto,determinante[]);

si alguine me pude ayudar , por favor nada d ejuegos.

ricardo.driju@gmail.com

Víctor Cuervo

mayito25

hola quisiera saber como puedo contar las lineas de un bloque de texto, es decir quiero contar las lineas que tiene una clase, pero mi archivo tal vez contiene varias clases a la vez.. umm no c si m explique pero stoi haciendo un contador de lineas de codigo y ahora quiero contar las lineas por cada clase, no se m ocurre como podria hacer tal vez me imagino que obteniendo la posicion dond encunetre la primera “class” y de ahi contar pero como delimito hasta donde contar…. ups bueno ojala alguien pueda ayudarme gracias. =)

Víctor Cuervo

Gabriela

hola quisiera saber como se puede sacar la derivada de una funcion utilizando la Clase StringTokenizer y sus metodos, ya llevo una parte de codigo pero ya no se como, espero q me puedan ayudar muxas gracias.

Víctor Cuervo

hector alberto

quisiera saber como puedo cortar un string apartir de que en este encuentre un punto(.)
espero que me ayuden gracias

Víctor Cuervo

chela

quiesiera saber si alguien me puede ayudar a crear un troyano en java se los agradeceria mucho

Víctor Cuervo

Marco

Acaso no debo importar algo de la API?????, como por ejemplo para utilizar JOptioPane debo importarlo… aca que debo importar??

Víctor Cuervo

Tati

Hola quisiera saber como comparar tokens

Víctor Cuervo

EDERZM

Chevere..lo estoy utilizando en un ejercicio para compiladores..bien1!!!

Víctor Cuervo

benjamin

Hola, necesito saber una manera de como contar las lineas de codigo para hacer un compilador. Pero que estas estén siempre visibles para los usuarios. Es decir, crear un objeto que las esté mostrando como en un compilador normal.

Víctor Cuervo

lineadecodigo

Leyla,

¿Que quieres decir con que “retroceda” los tokens? ¿Puedes poner un ejemplo?

Gracias.

Víctor Cuervo

Leyna Salinas

QUISIERA SABER SI EXISTE UN METODO DE LA CLASE STRINGTOKENIZER QUE RETROCEDA LOS TOKENS

Víctor Cuervo

Estrella Berenice Rosales Mata

Por medio de este escrito me permito pedirle ayuda sobre como programar en Java o Netbeans.
Como puedo hacer un punto en java y que este se mueva a la ves cuando yo pulse las flechas de desplazamiento? El punto debe aparecer una ves que yo haya corrido el programa y se debe mover cundo yo pulse las flechas de desplazamiento.
Le agradecería su ayuda, por que yo no se como hacerlo y creo que esta un poco complicado.
Gracias por su comprensión…

Cd. y Pto. de Lázaro Cárdenas a 24 Septiembre del 2007
Estudiante del Tecnologico de Lázaro Cardenas

Víctor Cuervo

lineadecodigo

Luis, como puedes ver en el anterior comentario, he creado una entrada que te explica como saber Cual es la palabra más larga de una frase en Java:

Espero te sea de ayuda…

Víctor Cuervo

luis

como puedo saver cual es la palabra mas larga dentro de un string

Víctor Cuervo

Karla Espinosa

kiero un programa que cuente cuántos ceros hay en un arreglo

Víctor Cuervo

alvaro ostos

como hago para hacer un reporte en orden alfabetico

Víctor Cuervo

alvaro

hola necesito contar palabras pero habiendo cargado un txt en un area de texto, esta parte ya la tengo ahora necesito saber como implemento el token sobre el archivo que cargo en mi programa.

Víctor Cuervo

oscar diaz rodriguez

m pues en la universidad me encargaron un programa parecido, que contara las palabras y el numero de lineas que ocupaba, este ejemplo me sirve pero necesito sabes como lo puedo hacer en el ready tu program que es un compilador que utilizamos para hacer los programas.

ojala me puedan ayudar

Víctor Cuervo

lineadecodigo

Había un error en el código. Realmente sTexto representa la cadena de texto a ser troceada, mientras que st es el StringTokenizer.

He modificado el artículo para que quede más claro y he puesto un enlace para descargar el código y que así ayude más.

Espero sea de ayuda.

Víctor Cuervo

emiliano

StringTokenizer st = new StringTokenizer(sTexto);
System.out.println ( stTexto.countTokens() );

mmm, no entiendo el objeto stTexto que utilizas para llamar al metodo countTokens. ¿¿Donde lo creaste?? Lo correcto no sería:
System.out.println ( st.countTokens() );
???

¿Algo que nos quieras comentar?

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

*


*