如何比较两个具有精确索引的数组 例如
String[] test1 = {"a","b","c","d"};
String[] test2 = {"a","b","c",""};
我试过了
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
现在如果 test1 的比较从索引 0 开始,它应该只与 test2 的索引 0 进行比较 我想找到空索引(例如与 test1 索引 3 相关的 test2 的索引 3)并做一些事情
我阅读了很多,但我遇到了一些困难,提前致谢。
答案 0 :(得分:0)
使用 .equals()
比较字符串。 ==
用于比较原语。
也不需要 2 个循环。
for(int i = 0; i < test1.length; i++){
if(test1[i].equals("")||test2[i].equals(""){
//Do something
}
}
答案 1 :(得分:0)
当您在 Java 中比较字符串时,您必须使用 EQUALS,因为它们是对象。此外,两个循环也没有意义。 试试这个:
for (int i = 0; i < test1.length; i++) {
if (test2[i].equals("") ) {do stuff}
}
答案 2 :(得分:0)
据我所知,您想比较两个大小可能不同的数组,如果不是,那么只比较最短的大小? 你可以这样做:
boolean equals = true;
for(int i = 0; i < test1.length && i < test2.length; i++) {
if(!test1[i].equals(test2[i])) {
equals = false;
break;
}
}
答案 3 :(得分:0)
使用 Arrays.java 的 deepEquals() :
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));
输出:deepEquals() 返回真