ignorieren Ich würde gerne wissen, ob es eine Methode ist, die zwei Strings vergleicht und ignoriert die Akzente machen „noção“ gleich „Noção“. es wäre etwas wie string1.methodCompareIgnoreAccent (string2);Vergleichen Strings akzentuierte Zeichen
Antwort
können Sie Java Collators verwenden, um die Tests zu vergleichen den Akzent zu ignorieren, sehen Sie ein einfaches Beispiel:
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));
}
}
Dokumentation: JavaDoc
ich werde nicht in Details erklären, weil ich nur ein wenig von Collators verwendet und Ich bin kein Experte darin, aber Sie können googlen, es gibt einige Artikel darüber.
danke. Haben Sie nicht wissen, über Sorter – alexandre1985
dies nicht funktioniert, wird es nicht drucken 0. Manchmal druckt -1 andermal 1 – alexandre1985
Es funktioniert, den Code bekommen, bevor der weston bearbeitet. –
Es gibt keine in Verfahren gebaut, dies zu tun, so dass Sie bauen müssen, um Ihre eigenen:
Ein Teil dieser Lösung aus here ist: dieser ersten Splits alle Zeichen mit Akzent in ihre deAccented Kollegen gefolgt von ihren Diakritika kombinieren. Dann entfernen Sie einfach alle kombinierenden diakritischen Zeichen. Siehe auch https://stackoverflow.com/a/1215117/4095834
Und dann gleich Ihre Methode wird wie folgt aussehen:
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. Akzentuierte Zeichen in Matplotlib
- 2. PHP: Unicode akzentuierte Zeichen und diakritische Zeichen
- 3. Vergleichen Sie Zeichen in Strings Python
- 4. Wie akzentuierte Zeichen in Java
- 5. String split, Wörter einschließlich akzentuierte Zeichen
- 6. Akzentuierte Zeichen mit Quickbooks verwenden SDK
- 7. preg_replacement akzentuierte Zeichen mit HTML Entity alternate
- 8. ColdFusion: Akzentuierte regionale Zeichen in ASCII konvertieren
- 9. Normalisierungs akzentuierte Zeichen in MySQL-Abfragen
- 10. Ersetzen akzentuierte Zeichen mit einfachen ASCII diejenigen
- 11. Boost-regex: [: alpha:] und akzentuierte Zeichen
- 12. Excel Macro akzentuierte Zeichen mit engen äquivalenten Zeichen zu ersetzen
- 13. Wie akzentuierte Zeichen in HTML in PHP konvertieren?
- 14. Vergleichen Hash-Strings
- 15. Vergleichen Strings Servlet Antwort
- 16. Vergleichen Strings in Lisp
- 17. Versionen als Strings vergleichen
- 18. Vergleichen Strings in Vb
- 19. Vergleichen Python Strings
- 20. Vergleichen Strings in Vorlagen
- 21. Vergleichen von Strings Java
- 22. Akzentuierte Buchstaben im String-Vergleich ignorieren
- 23. Wie kann ich zwei gemischte Strings vergleichen?
- 24. Wie vergleichen nicht Englisch Zeichen mit Akzenten
- 25. Wie man ein Zeichen mit ALLEN Zeichen eines Strings vergleicht
- 26. Zeichen miteinander vergleichen?
- 27. Vergleichen Sie zwei Strings Arrays
- 28. Fehlgeschlagen Strings in jsp vergleichen
- 29. Vergleichen Strings mit der Stunde
- 30. Verschiedene Möglichkeiten, Strings zu vergleichen
Haben Sie sich [ 'Collator'] (http://docs.oracle.com/javase/8/docs/api/java/text/Collator.html)? –
Sie können auch einen Blick auf https://stackoverflow.com/questions/1008802/converting-symbols-accent-letters-to-english-alphabet haben. –
Ich habe eine Klasse für die Suche nach arabischen Texten geschrieben, indem ich Diakritika ignoriert (NICHT lösche). vielleicht kannst du die Idee bekommen oder sie irgendwie benutzen. https://gist.github.com/mehdok/e6cd1dfccab0c75ac7a9536c6afac8ff – mehdok