3 votes

Traitement des chaînes de caractères avec des caractères spéciaux en Java

J'implémente un algorithme de mise en correspondance de chaînes de caractères qui nécessite la manipulation de chaînes contenant des caractères spéciaux. D'un côté de la correspondance, les chaînes ont été préparées en Python, puis sont passées par JAVA. De l'autre côté, elles ont été préparées par un autre environnement. Maintenant, je les fais correspondre dans mon programme en Java (chaînes récupérées à partir d'entrées JSON).

Bien que certains personnages soient manipulés, j'ai des problèmes avec beaucoup d'autres.

Par exemple, je reçois un MATCH pour cela (les deux se sont affichés sur ma console comme >> AS IT COMES CRUMBLING ) :

"text":"\u003e\u003e AS IT COMES CRUMBLING"
"caption":">> AS IT COMES CRUMBLING"

Mais ceux qui sont montrés comme NON-MATCH :

"text":"What if you had fewer headaches\nand migraines a month?"
"text":"What if you had fewer headaches\\nand migraines a month?"

Ou celui-là :

"text":"Effects of BOTOX® may spread"
"text":"Effects of BOTOX\\xc2\\xae may spread"

Ou ça :

"text":"Let's also rethink how\nwe care for ourselves."
"text":"Let'\\xe2\\x80\\x99s also rethink how\\nwe care for ourselves."

Dans mon code, j'utilise JSONPath à lire JSON les entrées des deux côtés, les mettre dans un ArrayList puis de les comparer à tous les éléments de la liste.

boolean found=false;
myText foundText = null;
for (int i = 0; i < scheduledText.size(); i++) {
    if(current.text.equals(scheduledText.get(i).text)) {
        found = true;
        foundText =scheduledText.get(i);
        break;
    }
}
if(found)
   //print MATCH
else
   //print NON_MATCH

Je suis frustré. Que dois-je faire ? Comment puis-je m'en sortir ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X