hola alguien me podria ayudar en un ejercicio en java y aparte de eso recomendarme un libro o alguna clase, se lo agradeceria mucho :)

Realizar una aplicación implementando programación orientada a objetos de que permita a un usuario realizar una búsqueda de cadenas completas o parciales. Para la búsqueda de cadenas parciales, se debe utilizar un comodín al inicio, al final o al inicio y final de la cadena. Este comodín debe ser el caracter * (Ver ejemplos). A su vez, se debe tener una opción (checkbox) que permita seleccionar si se tienen en cuenta o no las mayúsculas.

El resultado debe tener 5 posibles respuestas:

  • No se encontró la cadena buscada.
  • Se encontró la cadena en la posición X.
  • Se encontró la cadena parcial en la cadena XXXXX, ubicada en la posición X.
  • Se encontró la cadena en las posiciones X,Y,Z… (tantas posiciones como se repita la cadena).
  • Se encontró la cadena parcial en la cadena XXXXX ubicada en la posición X, YYYYY ubicada en la posición Y y ZZZZZ ubicada en la posición Z… (tantas veces como se encuentre la cadena parcial).
La aplicación debe tener:

  • Cuadro de texto que permita ingresar la cadena a buscar
  • Checkbox que permita seleccionar si se tienen en cuenta mayúsculas o no.
  • Botón que ejecute la búsqueda
  • Tabla de datos (Se deben cargar los ejemplos)
  • Cuadro de texto (TextArea) con resultado


Ejemplos:

Tener en cuenta las siguientes cadenas:

awereW#rr3rw

gañlkjg344”34

falksjsoiuer#”

gañlkjg344”34

gañlkj

kjg344”34


  • Buscar la cadena erlkkñjad.
  • Resultado: No se encontró la cadena.
  • Buscar la cadena awereW#rr3rw.
  • Resultado: La cadena awereW#rr3rw se encuentra en la posición 1.
  • Búsqueda parcial con un acierto:
  • Buscar la cadena awere*
  • Resultado: Se encontró la cadena parcial awere* en la cadena awereW#rr3rw ubicada en la posición 1.
  • Buscar la cadena *rr3rw
  • Resultado: Se encontró la cadena parcial *rr3rw en la cadena awereW#rr3rw ubicada en la posición 1.
  • Buscar la cadena *reW#*
  • Resultado: Se encontró la cadena parcial *reW#* en la cadena awereW#rr3rw ubicada en la posición 1.

  • Buscar la cadena gañlkjg344”34.
  • Resultado: La cadena gañlkjg344”34 se encuentra en las posiciones 2 y 4.

  • Búsqueda parcial con múltiples aciertos:
  • Buscar la cadena gañl*
  • Resultado: Se encontró la cadena parcial gañl* en la cadena gañlkjg344”34 ubicada en la posición 2, gañlkjg344”34 ubicada en la posición 4 y gañlkj ubicada en la posición 5.
  • Buscar la cadena *344”34.
  • Resultado: Se encontró la cadena parcial *344”34 en la cadena gañlkjg344”34 ubicada en la posición 2, gañlkjg344”34 ubicada en la posición 4 y kjg344”34 ubicada en la posición 6.
  • Buscar la cadena *kjg3*
  • Resultado: Se encontró la cadena parcial *kjg3* en la cadena gañlkjg344”34 ubicada en la posición 2 y gañlkjg344”34 ubicada en la posición 4.

ese es el problema en mi proyecto ya tengo el buscador de palabras, la encuentra y te dice en que posición esta, el problema que no tengo ni idea de como hacer lo de los comodines he buscado y nada, algún dios del java que me ayude? :D
 
Última edición:
Realizar una aplicación implementando programación orientada a objetos de que permita a un usuario realizar una búsqueda de cadenas completas o parciales. Para la búsqueda de cadenas parciales, se debe utilizar un comodín al inicio, al final o al inicio y final de la cadena. Este comodín debe ser el caracter * (Ver ejemplos). A su vez, se debe tener una opción (checkbox) que permita seleccionar si se tienen en cuenta o no las mayúsculas.

El resultado debe tener 5 posibles respuestas:

  • No se encontró la cadena buscada.
  • Se encontró la cadena en la posición X.
  • Se encontró la cadena parcial en la cadena XXXXX, ubicada en la posición X.
  • Se encontró la cadena en las posiciones X,Y,Z… (tantas posiciones como se repita la cadena).
  • Se encontró la cadena parcial en la cadena XXXXX ubicada en la posición X, YYYYY ubicada en la posición Y y ZZZZZ ubicada en la posición Z… (tantas veces como se encuentre la cadena parcial).
La aplicación debe tener:

  • Cuadro de texto que permita ingresar la cadena a buscar
  • Checkbox que permita seleccionar si se tienen en cuenta mayúsculas o no.
  • Botón que ejecute la búsqueda
  • Tabla de datos (Se deben cargar los ejemplos)
  • Cuadro de texto (TextArea) con resultado


Ejemplos:

Tener en cuenta las siguientes cadenas:

awereW#rr3rw

gañlkjg344”34

falksjsoiuer#”

gañlkjg344”34

gañlkj

kjg344”34


  • Buscar la cadena erlkkñjad.
  • Resultado: No se encontró la cadena.
  • Buscar la cadena awereW#rr3rw.
  • Resultado: La cadena awereW#rr3rw se encuentra en la posición 1.
  • Búsqueda parcial con un acierto:
  • Buscar la cadena awere*
  • Resultado: Se encontró la cadena parcial awere* en la cadena awereW#rr3rw ubicada en la posición 1.
  • Buscar la cadena *rr3rw
  • Resultado: Se encontró la cadena parcial *rr3rw en la cadena awereW#rr3rw ubicada en la posición 1.
  • Buscar la cadena *reW#*
  • Resultado: Se encontró la cadena parcial *reW#* en la cadena awereW#rr3rw ubicada en la posición 1.

  • Buscar la cadena gañlkjg344”34.
  • Resultado: La cadena gañlkjg344”34 se encuentra en las posiciones 2 y 4.

  • Búsqueda parcial con múltiples aciertos:
  • Buscar la cadena gañl*
  • Resultado: Se encontró la cadena parcial gañl* en la cadena gañlkjg344”34 ubicada en la posición 2, gañlkjg344”34 ubicada en la posición 4 y gañlkj ubicada en la posición 5.
  • Buscar la cadena *344”34.
  • Resultado: Se encontró la cadena parcial *344”34 en la cadena gañlkjg344”34 ubicada en la posición 2, gañlkjg344”34 ubicada en la posición 4 y kjg344”34 ubicada en la posición 6.
  • Buscar la cadena *kjg3*
  • Resultado: Se encontró la cadena parcial *kjg3* en la cadena gañlkjg344”34 ubicada en la posición 2 y gañlkjg344”34 ubicada en la posición 4.

ese es el problema en mi proyecto ya tengo el buscador de palabras, la encuentra y te dice en que posición esta, el problema que no tengo ni idea de como hacer lo de los comodines he buscado y nada, algún dios del java que me ayude? :D
Si la eficiencia no importa solo es ponerle un ciclo y pasarle todos los sufijos del string a lo que ya hizo, y viceversa los prefijos para el wildcard de adelante. Creo, porque leí muy por encima.
Si le van a dar cadenas de más de 100K caracteres le toca montar un parser con un automata para que eso responda en tiempos decentes y ahí sí es un poquito más difícil.
 
  • Me encanta
Reacciones: juliangarcia
Si la eficiencia no importa solo es ponerle un ciclo y pasarle todos los sufijos del string a lo que ya hizo, y viceversa los prefijos para el wildcard de adelante. Creo, porque leí muy por encima.
Si le van a dar cadenas de más de 100K caracteres le toca montar un parser con un automata para que eso responda en tiempos decentes y ahí sí es un poquito más difícil.
me podrías ayudar? debe ser un programa simple, como mucho 10 palabras llevo dos días tirando código y buscando en YouTube o en mi libro y nada y ya me frustre :(
 
Pues para el comodín lo más seguro es que el lenguaje en el que está trabajando tenga una librería de expresiones regulares, en cuyo caso simplemente reemplazaría todos los asteriscos de la cadena de búsqueda por .*? y pondría a correr un regex match sobre la cadena de caracteres a evaluar. Simple.
 
Importante saber en donde va ??

1. Crear la interfaz grafica. Escritorio: Swing / Web: JSF ... o en otro lenguaje que luego se conecta con el java: Ej: Angular. VISTA.
2. Crear los objetos que van a interactuar entre lo anterior (vista) y las funciones (controlador) de java. MODELO.
3. Escribir la lógica de las comparaciones donde estarán cada una de esas funciones. 'Se encontró bla bla bla'. CONTROLADOR.

Bueno así lo veo yo desde mi lógica de programación, se muy bien que cada quien tiene la suya. También se que falta ese paso '0' de análisis donde se deberían crean todos esos anhelados modelos de: Requerimientos (que ya seria este texto), Casos de uso, Actividades, Diagramas de clases, quizas uno de flujo etc etc

y cuando termines de programar: Diagrama de secuencia ... donde esten todos eso: if, while, for, try, cath ...

Póngase acá unos pantallazos o código, haber que !!
 
Importante saber en donde va ??

1. Crear la interfaz grafica. Escritorio: Swing / Web: JSF ... o en otro lenguaje que luego se conecta con el java: Ej: Angular. VISTA.
2. Crear los objetos que van a interactuar entre lo anterior (vista) y las funciones (controlador) de java. MODELO.
3. Escribir la lógica de las comparaciones donde estarán cada una de esas funciones. 'Se encontró bla bla bla'. CONTROLADOR.

Bueno así lo veo yo desde mi lógica de programación, se muy bien que cada quien tiene la suya. También se que falta ese paso '0' de análisis donde se deberían crean todos esos anhelados modelos de: Requerimientos (que ya seria este texto), Casos de uso, Actividades, Diagramas de clases, quizas uno de flujo etc etc

y cuando termines de programar: Diagrama de secuencia ... donde esten todos eso: if, while, for, try, cath ...

Póngase acá unos pantallazos o código, haber que !!
no hermano jajaja ya se pasoel tiempo pero igual me gustaria terminarlo, quede por las busquedas, las busquedas parciales las hacia con el el boton de mayuscula y todo eso pero el problema es que faltaba el comodin, le deje a mi profesor un buen chiste de java para que me subiera la nota xd
intente usar los metodos starwith y endwith para los comodines, pero fue todo un fracaso
 
Buenas noches.

Estuvo interesante el reto y la verdad estaba oxidado con java. Allí le adjunto el código en Gradle para que corra use le comando gradle run en la consola estando ubicado en la carpeta.
 

Archivos adjuntos

  • front.PNG
    front.PNG
    11.2 KB · Visitas: 51
  • finder.zip
    82.9 KB · Visitas: 50

Los últimos temas