I 2 Strings vergleichen wollen, dieWie vergleichen nicht Englisch Zeichen mit Akzenten
String1 = debarquer
String2 = débárquér
Beim Vergleich über 2 Strings in ihnen etwas nicht englischen Charakter haben, sollten sie gleich sagen.
I 2 Strings vergleichen wollen, dieWie vergleichen nicht Englisch Zeichen mit Akzenten
String1 = debarquer
String2 = débárquér
Beim Vergleich über 2 Strings in ihnen etwas nicht englischen Charakter haben, sollten sie gleich sagen.
//add null check for string1
if(string1.equals(string2)){
//print/return equals
} else{
//print/return not equal
}
if (string1 != null){
if (string1.equals(string2)){
System.out.println("Equal");
}
else{
System.out.println("Not Equal");
}
Verwenden der Collator-Klasse. Hier können Sie eine Stärke und ein Gebietsschema festlegen und die Zeichen entsprechend vergleichen.
Es sollte etwas ähnliches wie dies sein (Anmerkung: Ich habe das Programm nicht getestet)
import java.text.Collator;
import java.util.Locale;
public class CollatorExp {
public static void main(String[] args) {
Collator collator = Collator.getInstance(Locale.FRENCH);
collator.setStrength(Collator.PRIMARY);
if (collator.compare("débárquér", "debarquer") == 0) {
System.out.println("Both Strings are equal");
} else {
System.out.println("Both Strings are not equal");
}
}
}
UPDATE: Ein Punkt zu beachten ist, dass „débárquér“ und „debarquer“ sollte nie als in Betracht gezogen werden gleich. Aber wenn Sie sie aussortieren, wollen Sie nicht, dass sie anhand ihres ASCII-Werts verglichen werden. Nehmen Sie zum Beispiel "Joao" und "João": Wenn Sie sie basierend auf ASCII sortieren, könnten Sie Joao, John, João bekommen. Das ist offensichtlich nicht gut. Mit der Collator-Klasse wird das korrekt gehandhabt.
Warum postest du Code, den du nicht getestet hast? –
Ich vergleiche '' '' '' '' so mit der '' equals' Methode und es gibt kein Problem. Was wäre der große Unterschied? –
Es gibt eine Möglichkeit, 2 Zeichenfolgenwerte in Java zu vergleichen.
if(String1.equals(String2))
{
System.out.println("Equal");
}
else
{
System.out.println("Not equal");
}
Um dies zu tun, Sie Normalizer Klasse Java verwenden können. Nur normalisieren die Streicher, dann die diakritischen Zeichen Streifen aus, etwa so:
String stripAccents(String string) {
string = Normalizer.normalize(string, Normalizer.Form.NFD);
string = string.replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}
Anschließend können Sie diese verwenden, um die beiden Strings minus die Akzente zu vergleichen:
stripAccents(string1).equals(stripAccents(string2))
Mach dir keine Sorgen, wenn Ihr 'String 'enthält nicht-ASCII-Werte. Sie sollten sie mit 's1.equals (s2)' vergleichen, vorausgesetzt beide sind 'String's und haben keinen' null' Wert. –
'if (String1.equals (String2)) {/ * etwas tun * /}' –