Busqueda de palabras en java

reds18
19 de Enero del 2006
hola, estoy programando un libro electronico de cuentos en java (son 5 cuentos, y cada cuento posee 4 parrafos, cada parrafo lo declare como un String distinto, las oraciones de cada parrafo comienzan con letra mayuscula), el programa debe tener las siguientes funcionalidades de busquedas de palabras:

Dada una palabra, contar la cantidad de apariciones de la misma en todo el libro electrónico (las veces que aparece en cada cuento y el total para todos los cuentos), en un cuento determinado o en un párrafo de un cuento.

Dada una palabra, indicar donde ocurre la primera aparición de la misma:
Cuento número del cuento
Párrafo: número de párrafo
Oración: número de oración y contenido de la misma

Dado un párrafo de un cuento, se debe indicar la cantidad oraciones que tiene el mismo.

Dado el identificador de un cuento (1 al 5), mostrar el contenido del mismo hasta un carácter dado.

gracias...

Pedro
19 de Enero del 2006
¿Y cuales exactamente tu pregunta?

reds18
19 de Enero del 2006
bueno pedro, mi pregunta es como encontrar una palabra dentro de un string con muchas más palabras, por ejemplo

String str = \"direccion de correo electronico\";
quiero buscar \"correo\", e indicar que se encuentra en un numero de palabra espefico (en este caso seria la 3ra palabra)

Pedro
19 de Enero del 2006
Tambien puedes utilizar los métodos indexOf() de la clase String...

juamurex
19 de Enero del 2006
Hola, a ver si esto te sirve o por lo menos te da una idea útil, se trata del método split(String s) de la clase String.

public int palabraNumero(String cadena, String palabra)
{
int posicion = -1;
String[] trozos = cadena.split(" ");

for (int i = 0; i < trozos.length; i++)
if (trozos[i].compareTo(palabra) == 0)
{
posicion = i + 1;
return posicion;
}

return posicion;
}

En este ejemplo se pasa como parámetro dos String, uno con la frase y otro con la palabra, se divide la frase en trozos usando split(" "), la pega es que de esta manera se divide la cadena por según los espacios en blanco, no tiene en cuenta . , ; esto requiere un poco más de faena.

Espero que esto te sea de ayuda, saludos.