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 ?