Contador de Ocurrencias en Java

19/ago/2007 Java , , 11 Comentarios
java

La idea consiste en ver cuantas veces se repite una ocurrencia (o palabra) dentro de una frase utilizando el lenguaje Java.

Para buscar el texto dentro de una frase utilizaremos el método .indexOf() la cual devuelve la posición de la cadena a partir de la cual empieza la cadena buscada. En el caso de que no encuentre la cadena devolverá el valor -1.

  1. sTexto.indexOf(sCadenaBuscada);

Esto solamente nos devolvería la posición de la primera ocurrencia de la frase.

Para poder evaluar si la ocurrencia aparece más veces debemos de repetir la búsqueda del indexOf() sobre el resto de la frase. Es por ello que nos quedaremos con un substring desde la posición en que termina la primera ocurrencia (indexOf(Ocurrencia) + Ocurrencia.length()) hasta el final del texto (sTexto.length).

  1. sTexto = sTexto.substring(sTexto.indexOf(
  2. sTextoBuscado)+sTextoBuscado.length(),sTexto.length());

Sobre esta nueva cadena volveremos a realizar la búsqueda de la ocurrencia. Esto lo repetiremos hasta que el método .indexOf() nos retorne -1.

  1. while (sTexto.indexOf(sTextoBuscado) > -1) {
  2. sTexto = sTexto.substring(sTexto.indexOf(
  3. sTextoBuscado)+sTextoBuscado.length(),sTexto.length());
  4. contador++;
  5. }

Vídeos sobre Java

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

11 comentarios en “Contador de Ocurrencias en Java”

Víctor Cuervo

Víctor Cuervo

@Omar Angulo, me alegro mucho que te haya servido.

Víctor Cuervo

Omar Angulo

Excelente como siempre, línea de código, con la información que uno necesita.

Víctor Cuervo

Víctor Cuervo

@chiki,

Me alegro que te haya servido. 😀

Víctor Cuervo

chiki

Gracias por la explicación, muy entendible. Busqué en otros sitios pero no entendía. Gracias por la aportación :)

Víctor Cuervo

William

Tres versiones del mismo programa incluyendo la mencionada
Trate de hacerlo con Split pero no me funciono
si alguien sabe ciomo posteelo por facor
public static int nroVeces(String frase,String palabra){
int r=0;
int pos=0;
String temp=frase;
pos = temp.indexOf(palabra);
int x=0;
while(pos>=0){
r++;
x= pos +palabra.length()+1;
temp=temp.substring(x);

pos = temp.indexOf(palabra);
}
return r;
}
public static int nroVecesR(String frase,String palabra){
int pos =0;
pos = frase.indexOf(palabra);
if(pos>=0){
return 1+ nroVecesR(frase.substring(pos+palabra.length()+1),palabra);
}
else
return 0;
}

public static int nroVecesT(String frase,String palabra){
int r=0;
StringTokenizer temp= new StringTokenizer(frase,” ,;.”);
String stpalabra =””;
while(temp.hasMoreTokens()){
stpalabra = temp.nextToken();
if(stpalabra.compareTo(palabra)==0)
r++;
}
return r;
}

Víctor Cuervo

kioko

el codigo que ponen no sirve ya que no hace una verdader comparacion por ejemplo se esta comparando ‘palabra’ pero si se agresa letras a la frase por ejemplo “”palabra1111 o palabra2 y palabra3″; a esta frase solo agregue numeros y el contador lo incrementa diciendome que la palabra se encuentra, sindo palabra1 diferente a palabra

Víctor Cuervo

Julian Ramos

no lo hubiese entendido de verdad que si esta bien desmenusado para entender, mucha gente que se dedica que ha explicar y humm
dificilmente le cojo terminales gracias hermanito.

Víctor Cuervo

Carlos Pirela

no entiendo nada y nececito eso :S solo me piden
NUMERO DE PALABRAS EN UNA FRASE estoy trabajando con TexPad y Java

Víctor Cuervo

Andres

Alguien sabe si el metodo indexOf implementa el equals para ralizar la busqueda……Gracias

Víctor Cuervo

Victoria

Muchas gracias por explicar cómo usar indexOf!! estube buscando por un montón de lados y la explicación q entendí fue la de esta página :)

Víctor Cuervo

juan carlos

quiero crear un programa en pascal que enumere numeros primos segun se les identifique.

¿Algo que nos quieras comentar?

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

*


*