jump to navigation

Contador de Ocurrencias en Java Agosto 19, 2007

Publicado por lineadecodigo en : Java , trackback

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 la función .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.

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).

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

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

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

Visualizar el ejemplo | Descargar el código

Articulos Similares:

Enviar entrada por email Enviar entrada por email | Imprimir Imprimir | 15468 visitas

1 Star2 Stars3 Stars4 Stars5 Stars (4 votos, media: 4.75 de 5)
Loading ... Loading ...

Comentarios»

1. Linea de Codigo » Java y la palabra más larga de una frase - Agosto 26, 2007

[...] 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(). [...]

2. juan carlos - Octubre 2, 2007

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

3. Victoria - Mayo 26, 2008

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 :)

4. Andres - Septiembre 20, 2008

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

5. Carlos Pirela - Septiembre 22, 2008

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

6. Julian Ramos - Diciembre 14, 2008

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.

7. kioko - Marzo 12, 2009

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

8. William - Marzo 23, 2009

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;
}


Imagen CAPTCHA CAPTCHA Audio
Refrescar imagen