Contador de Ocurrencias en Java Agosto 19, 2007
Publicado por lineadecodigo en : Java , trackbackLa 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:
- Poner en mayúsculas después de punto
- Función Replace en JavaScript
- Extraer una parte de una cadena
- Eliminar espacios en blanco con Java
- Java y la palabra más larga de una frase
Enviar entrada por email
|
Imprimir
| 15468 visitas





(4 votos, media: 4.75 de 5)
Comentarios»
[...] 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(). [...]
quiero crear un programa en pascal que enumere numeros primos segun se les identifique.
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
Alguien sabe si el metodo indexOf implementa el equals para ralizar la busqueda……Gracias
no entiendo nada y nececito eso :S solo me piden
NUMERO DE PALABRAS EN UNA FRASE estoy trabajando con TexPad y Java
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.
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
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;
}