Comparando cadena (índice) [duplicado]
cómo comparar dos matrices con índice exacto, por ejemplo
String[] test1 = {"a","b","c","d"};
String[] test2 = {"a","b","c",""};
Probé esto
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
ahora, si la comparación comienza en el índice 0 para test1, debería compararse solo con el índice 0 para test2.Quiero encontrar el índice vacío (por ejemplo, el índice 3 para test2, que está relacionado con el índice 3 de test1) y hacer algunas cosas
Leo mucho pero tengo algunas dificultades, gracias de antemano.
Respuestas
Por lo que tengo entendido, desea comparar dos matrices que podrían no ser del mismo tamaño y, si no lo son, ¿comparar solo con el tamaño más corto? Puedes hacer algo como esto:
boolean equals = true;
for(int i = 0; i < test1.length && i < test2.length; i++) {
if(!test1[i].equals(test2[i])) {
equals = false;
break;
}
}
Úselo .equals()
para comparar cadenas. ==
se utiliza para comparar primitivas.
Tampoco hay necesidad de 2 bucles.
for(int i = 0; i < test1.length; i++){
if(test1[i].equals("")||test2[i].equals(""){
//Do something
}
}
Cuando está comparando cadenas en Java, debe usar EQUALS ya que son objetos. Además, no tiene sentido utilizar dos bucles. Intenta esto:
for (int i = 0; i < test1.length; i++) {
if (test2[i].equals("") ) {do stuff}
}
Utilice 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));
Salida: deepEquals () devuelve verdadero