Karşılaştırma Dizesi (dizin) [yinelenen]
örneğin iki diziyi kesin indeksle nasıl karşılaştırabilirim?
String[] test1 = {"a","b","c","d"};
String[] test2 = {"a","b","c",""};
Bunu denedim
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
şimdi karşılaştırma test1 için dizin 0'da başlıyorsa, yalnızca test2 için dizin 0 ile karşılaştırılmalıdır Boş dizini bulmak istiyorum (örneğin, test1 dizini 3 ile ilgili olan test2 için dizin 3) ve bazı şeyler yapmak istiyorum
Çok okurum ama bazı zorluklar yaşıyorum, şimdiden teşekkürler.
Yanıtlar
Anladığım kadarıyla, aynı boyutta olmayabilecek iki diziyi karşılaştırmak istiyorsunuz ve eğer değilse, o zaman sadece en kısa boyutla karşılaştırmak istiyorsunuz? Bunun gibi bir şey yapabilirsiniz:
boolean equals = true;
for(int i = 0; i < test1.length && i < test2.length; i++) {
if(!test1[i].equals(test2[i])) {
equals = false;
break;
}
}
.equals()
Dizeleri karşılaştırmak için kullanın . ==
ilkelleri karşılaştırmak için kullanılır.
Ayrıca 2 döngüye gerek yoktur.
for(int i = 0; i < test1.length; i++){
if(test1[i].equals("")||test2[i].equals(""){
//Do something
}
}
Java'da Dizeleri karşılaştırırken nesneler oldukları için EQUALS kullanmanız gerekir. Ayrıca, iki döngü üzerinde hiçbir nokta yoktur. Sadece şunu dene:
for (int i = 0; i < test1.length; i++) {
if (test2[i].equals("") ) {do stuff}
}
Arrays.java için deepEquals () kullanın:
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));
Çıktı: deepEquals () true değerini döndürür