Cadenas en JAVA

Soy Antonio.
Estoy haciendo una aplicación y me he atascado en una cosilla... Os pongo un ejemplo simple de lo que quiero hacer.
Yo recibo un String que contiene palabras
String inicial="uno dos tres cuatro cinco seis siete ocho nueve diez" ;
En mi aplicación son frases por lo que serían más largas.
Lo que yo quiero hacer es buscar si una palabra esta entre las que tiene ese String y poder poner un entero que me deje mostrar las POR palabras anteriores y posteriores a la que yo busco.
Es decir, si llamo a un supuesto método o función buscar(cinco, 2); me debería mostrar "tres cuatro cinco seis siete" y el cinco me gustaría que saliera marcado (no se si existe Highlighter en JAVA) en algún color...
Lo que intento es "imitar" un poco la búsqueda de google que buscas una serie de palabras y los resultados te muestran en negrita las palabras que has buscado y te muestran una serie de palabras que hay por delante y por detrás.
¿Alguien sabe como podría hacerlo?
Respuesta
1
Lo que pides no parece muy complicado. Tardaría algo más en hacer todo el código, así que te diré las pistas y para hacerlo en plan pseudocódigo:
1) Para empezar lo mejor es usar el método "split" de String.
Inicial.split(" "); -> Esto te devolverá un array de Strings (String[]) con las palabras. Separa el string segun el espacio en blanco. Se pueden añadir cosas como comas o puntos también.
2) Ahora buscamos la palabra concreta. Podemos recorrer el array, cuando la encontremos ya tenemos su posición y solo nos haría falta coger las N anteriores (mientras indice > 0) y las N siguientes (mientras indice < length) (N es el numero pedido)
3) Lo de marcar la palabra elegida ya no lo entiendo muy bien. Eso ya no es cosa de Java y depende de cómo estés haciendo la aplicación. Si es una aplicación web solo tendrías que introducir antes y después de la palabra elegida : < b > y </ b >, para que salga en negrita. O algún otro tag para cambiarla de color. Si estás sacando los resultados por pantalla no va a haber colores o negrita en eso... por pantalla puedes ponerla en Mayúsculas como mucho... (. ToUpperCase() )

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas