Java - Ignorar tilde en palabras al filtrar un jtable

 
Vista:
sin imagen de perfil

Ignorar tilde en palabras al filtrar un jtable

Publicado por anonymous (38 intervenciones) el 02/08/2021 21:52:56
Hola. Tengo varias jtable a las cuales les aplico un rowfilter con texto que el usuario ingresa en un cuadro de texto. Mi problema es q hay palabras en la tabla que estan con tildes y otras no.. lo q dificulta el filtrado. Quisiera saber si tienen alguna idea como no tener en cuenta los tildes de las palabras a la hora de filtrar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ignorar tilde en palabras al filtrar un jtable

Publicado por Tom (1831 intervenciones) el 03/08/2021 17:45:13
Pues tienes un problema, sí.
No sé si habrá algo más automático, aunque lo dudo muchísimo.
Creo que antes de insertar en la tabla, debes eliminar las tildes.
Y al obtener el texto del filtrado, lo mismo.
Quizás algo que funcione sea pasar las cadenas a ascii (esperando que eso elimine las tildes) y luego a utf de nuevo:

String.getBytes("US-ASCII")
String(bytes[]);

Lo malo es que puede que te elimine también las 'ñ'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ignorar tilde en palabras al filtrar un jtable

Publicado por anonymous (38 intervenciones) el 05/08/2021 02:26:48
Gracias por contestar.. es un problema que debo resolver. Imagino q muchos ya se han enfrentado a este "problema"..vere q puedo ir intentando. Me parece que cuando le pasas la expresión regular al filtro debe poderse indicar q no considere los tildes.. pero no se como escribirla para que represente eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ignorar tilde en palabras al filtrar un jtable

Publicado por Tom (1831 intervenciones) el 05/08/2021 10:38:00
Una solución "clásica" es examinar carácter a carácter para hacer la sustitución ... el problema es que hay bastantes tipos de tildes ... incluso algunas dependerán del teclado que usas.

A mí no me suena que exista ninguna clase "carácter con tilde" en las RE ... de hecho parece ser que en Unicode tampoco. Al hacer la conversión entre juegos de caracteres se hace con tablas de sustitución generalmente puestas a fuego en alguna librería ... en java tienes rutinas es Character y en Charset
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ignorar tilde en palabras al filtrar un jtable

Publicado por Tom (1831 intervenciones) el 05/08/2021 11:08:00
Pues parece ser que sí que hay un "bloque" Unicode (InCombiningDiacriticalMarks).
Para hacer comparaciones de strings ignorando los acentos, puedes usar Collator.compare()
pero si lo que quieres es usar REs la cosa es como yo te comenté ... el texto en la tabla debería estar ya sin acentos.

Pare elminar los acentos de un string, he encontardo esto que no no conocía:

public static String removeDiacriticalMarks(String string) {
return Normalizer.normalize(string, Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}

parece ser que Normalizer descompone las letras con tilde en la letra en sí y luego la tilde. A continuación con replaceAll ... bueno es obvio.

Las clases, o bloques Unicode están aquí:
https://www.unicode.org/reports/tr44/#Properties
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar