Vergleichen von String (Index) [Duplikat]
wie man zum Beispiel zwei Arrays mit dem exakten Index vergleicht
String[] test1 = {"a","b","c","d"};
String[] test2 = {"a","b","c",""};
Ich habe es versucht
for (int i = 0; i < test1.length; i++) {
for (int j = i; j < test2.length; j++) if (i==j) if (i == j && test2[j] == "" ) {do stuff}
}
// but always give true
Wenn der Vergleich jetzt bei Index 0 für Test1 beginnt, sollte er nur mit Index 0 für Test2 verglichen werden. Ich möchte den leeren Index finden (zum Beispiel Index 3 für Test2, der mit Test1 Index 3 zusammenhängt) und einige Dinge tun
Ich lese viel, habe aber einige Schwierigkeiten, danke im Voraus.
Antworten
Soweit ich weiß, möchten Sie zwei Arrays vergleichen, die möglicherweise nicht dieselbe Größe haben. Wenn dies nicht der Fall ist, vergleichen Sie nur die kürzeste Größe. Sie können so etwas tun:
boolean equals = true;
for(int i = 0; i < test1.length && i < test2.length; i++) {
if(!test1[i].equals(test2[i])) {
equals = false;
break;
}
}
Verwenden Sie .equals()
diese Option , um Strings zu vergleichen. ==
wird zum Vergleichen von Grundelementen verwendet.
Es sind auch keine 2 Schleifen erforderlich.
for(int i = 0; i < test1.length; i++){
if(test1[i].equals("")||test2[i].equals(""){
//Do something
}
}
Wenn Sie Strings in Java vergleichen, müssen Sie EQUALS verwenden, da es sich um Objekte handelt. Es macht auch keinen Sinn, zwei Schleifen zu verwenden. Versuchen Sie einfach Folgendes:
for (int i = 0; i < test1.length; i++) {
if (test2[i].equals("") ) {do stuff}
}
Verwenden Sie deepEquals () von Arrays.java:
import java.util.Arrays;
String[][] s1 =
{
{"A", "B", "C"},
{"X", "Y", "Z"}
};
String[][] s2 =
{
{"A", "B", "C"},
{"X", "Y", "Z"}
};
System.out.println("deepEquals() returns " + Arrays.deepEquals(s1, s2));
Ausgabe: deepEquals () gibt true zurück