Vorrei sapere se esiste un metodo che confronta 2 stringhe e ignora gli accenti rendendo "noção" uguale a "nocao". sarebbe qualcosa come string1.methodCompareIgnoreAccent (stringa2);Confronto stringhe che ignorano i caratteri accentati
risposta
È possibile utilizzare raccoglitrici java per confrontare le prove ignorando l'accento, vedere un semplice esempio:
import java.text.Collator;
/**
* @author Kennedy
*/
public class SimpleTest
{
public static void main(String[] args)
{
String a = "nocao";
String b = "noção";
final Collator instance = Collator.getInstance();
// This strategy mean it'll ignore the accents
instance.setStrength(Collator.NO_DECOMPOSITION);
// Will print 0 because its EQUAL
System.out.println(instance.compare(a, b));
}
}
Documentazione: JavaDoc
Non spiegherò nei dettagli perché ho usato solo un po 'di Collators e non sono un esperto in questo, ma puoi google ci sono alcuni articoli a riguardo.
grazie. Non sapeva di Collator – alexandre1985
questo non funziona, non verrà stampato 0. A volte stampa -1 altre volte 1 – alexandre1985
Funziona, ottieni il codice prima che Weston abbia modificato. –
Non NO è costruito nel metodo per fare questo, quindi bisogna costruire il proprio:
Una parte di questo è la soluzione viene da here: Questa prima si divide tutti i caratteri accentati nelle loro controparti deAccented seguito dal loro combinando segni diacritici. Quindi rimuovi semplicemente tutti i segni diacritici combinati. vedere anche https://stackoverflow.com/a/1215117/4095834
E poi il tuo uguale metodo sarà simile a questa:
import java.text.Normalizer;
import java.text.Normalizer.Form;
public boolean equals(Object o) {
// Code omitted
if (yourField.equals(removeAccents(anotherField))) {
return true;
}
}
public static String removeAccents(String text) {
return text == null ? null : Normalizer.normalize(text, Form.NFD)
.replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}
- 1. problema con i caratteri accentati
- 2. Confronto tra due array che ignorano l'ordine
- 3. Caratteri accentati in Matplotlib
- 4. Come abbinare i caratteri accentati in preg_match()?
- 5. Uso di unique() e == per far corrispondere i caratteri accentati a quelli non accentati
- 6. Perché string.Compare sembra gestire i caratteri accentati in modo incoerente?
- 7. Come convertire i caratteri accentati in html in php?
- 8. i panda combinano due stringhe ignorano i valori nan
- 9. Caratteri accentati nella tabella mySQL
- 10. String spaccato, parole tra cui i caratteri accentati
- 11. Python String Cleanup + di manipolazione (caratteri accentati)
- 12. Come abbinare i caratteri accentati con una regex in Python?
- 13. Tutti i caratteri accentati dovrebbero utilizzare entità html?
- 14. NSURL URLWithString: è nullo con i caratteri accentati non inglesi
- 15. Come spiegare i caratteri accentati per regex in Python?
- 16. Sostituire tutti i caratteri accentati dalla loro LaTeX equivalenti
- 17. Modulo richiesta come recuperare correttamente i caratteri accentati?
- 18. Zend Search Lucene e caratteri accentati
- 19. UTF-8 caratteri accentati francesi numero
- 20. normalizzare caratteri accentati in MySQL query
- 21. Confronto IndexOf e stringhe ordinali
- 22. Confronto tra stringhe e ordine alfabetico dei singoli caratteri
- 23. Sostituzione caratteri accentati con quelli ascii semplici
- 24. Confronto di sequenze multiple di stringhe arbitrarie con caratteri orientati
- 25. Invertire una stringa con caratteri accentati?
- 26. Confronto delle stringhe MySQL
- 27. Converti caratteri accentati nel carattere ascii
- 28. Confronto tra stringhe per considerare i numeri
- 29. Caratteri accentati della corrispondenza Mongodb come carattere sottostante
- 30. Confronto stringhe con i wrapper SSE4
Hai guardato ['Collator'] (http://docs.oracle.com/javase/8/docs/api/java/text/Collator.html)? –
Puoi anche dare un'occhiata a https://stackoverflow.com/questions/1008802/converting-symbols-accent-letters-to-english-alphabet. –
Ho scritto una classe per la ricerca attraverso i testi arabi ignorando i segni diacritici (NON li rimuoviamo). forse puoi avere l'idea o usarla in qualche modo. https://gist.github.com/mehdok/e6cd1dfccab0c75ac7a9536c6afac8ff – mehdok