Comparando String (índice) [duplicado]
como comparar duas matrizes com índice exato, por exemplo
String[] test1 = {"a","b","c","d"};
String[] test2 = {"a","b","c",""};
Eu tentei isso
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
agora, se a comparação começar no índice 0 para teste1, ela deve ser comparada apenas com o índice 0 para teste2. Eu quero encontrar o índice vazio (por exemplo, índice 3 para teste2 que está relacionado ao teste1 índice 3) e fazer algumas coisas
Eu leio muito, mas tenho algumas dificuldades, desde já agradeço.
Respostas
Pelo que entendi, você deseja comparar duas matrizes que podem não ter o mesmo tamanho e, se não forem, comparar apenas até o menor tamanho? Você pode fazer algo assim:
boolean equals = true;
for(int i = 0; i < test1.length && i < test2.length; i++) {
if(!test1[i].equals(test2[i])) {
equals = false;
break;
}
}
Use .equals()
para comparar Strings. ==
é usado para comparar primitivas.
Também não há necessidade de 2 loops.
for(int i = 0; i < test1.length; i++){
if(test1[i].equals("")||test2[i].equals(""){
//Do something
}
}
Ao comparar Strings em Java, você deve usar EQUALS, pois são objetos. Além disso, não há nenhum ponto em dois loops. Apenas tente isto:
for (int i = 0; i < test1.length; i++) {
if (test2[i].equals("") ) {do stuff}
}
Use 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));
Resultado: deepEquals () retorna verdadeiro