Comparaison de la chaîne (index) [duplicate]
comment comparer deux tableaux avec un index exact par exemple
String[] test1 = {"a","b","c","d"};
String[] test2 = {"a","b","c",""};
J'ai essayé ça
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
maintenant, si la comparaison commence à l'index 0 pour test1, elle doit être comparée uniquement à l'index 0 pour test2 Je veux trouver l'index vide (par exemple l'index 3 pour test2 qui est lié à test1 index 3) et faire des choses
Je lis beaucoup mais j'ai quelques difficultés, merci d'avance.
Réponses
D'après ce que je comprends, vous voulez comparer deux tableaux qui pourraient ne pas être de la même taille, et s'ils ne le sont pas, comparer uniquement à la taille la plus courte? Vous pouvez faire quelque chose comme ceci:
boolean equals = true;
for(int i = 0; i < test1.length && i < test2.length; i++) {
if(!test1[i].equals(test2[i])) {
equals = false;
break;
}
}
Utilisez .equals()
pour comparer des chaînes. ==
est utilisé pour comparer les primitives.
Il n'y a pas non plus besoin de 2 boucles.
for(int i = 0; i < test1.length; i++){
if(test1[i].equals("")||test2[i].equals(""){
//Do something
}
}
Lorsque vous comparez des chaînes en Java, vous devez utiliser EQUALS car ce sont des objets. En outre, il n'y a pas de point sur deux boucles. Essayez simplement ceci:
for (int i = 0; i < test1.length; i++) {
if (test2[i].equals("") ) {do stuff}
}
Utilisez deepEquals () de 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));
Sortie: deepEquals () renvoie true