比较字符串(索引)

时间:2021-01-12 14:57:39

标签: java android

如何比较两个具有精确索引的数组 例如

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)并做一些事情

我阅读了很多,但我遇到了一些困难,提前致谢。

4 个答案:

答案 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() 返回真

相关问题