Membandingkan String (indeks) [duplikat]
bagaimana membandingkan dua array dengan indeks yang tepat misalnya
String[] test1 = {"a","b","c","d"};
String[] test2 = {"a","b","c",""};
Saya mencoba ini
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
sekarang jika perbandingan dimulai dari indeks 0 untuk test1 itu harus dibandingkan hanya dengan indeks 0 untuk test2 saya ingin mencari indeks kosong (misalnya indeks 3 untuk test2 yang terkait dengan test1 indeks 3) dan melakukan beberapa hal
Saya banyak membaca tetapi saya mengalami beberapa kesulitan, terima kasih sebelumnya.
Jawaban
Dari apa yang saya pahami, Anda ingin membandingkan dua larik yang mungkin tidak berukuran sama, dan jika tidak, maka hanya membandingkan hingga ukuran terpendek? Anda bisa melakukan sesuatu seperti ini:
boolean equals = true;
for(int i = 0; i < test1.length && i < test2.length; i++) {
if(!test1[i].equals(test2[i])) {
equals = false;
break;
}
}
Gunakan .equals()
untuk membandingkan String. ==
digunakan untuk membandingkan primitif.
Juga tidak perlu 2 loop.
for(int i = 0; i < test1.length; i++){
if(test1[i].equals("")||test2[i].equals(""){
//Do something
}
}
Saat Anda membandingkan Strings di Java, Anda harus menggunakan EQUALS karena mereka adalah objek. Juga, tidak ada gunanya melakukan dua putaran. Coba saja ini:
for (int i = 0; i < test1.length; i++) {
if (test2[i].equals("") ) {do stuff}
}
Gunakan deepEquals () dari 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));
Output: deepEquals () mengembalikan nilai true