java如何在字符串数组中查找重复字符串
我有下面的代码,我只想检索那些重复的值,但找不到正确的结果。我不知道我错在哪里
public class TestDummy {
public static void main(String args[]){
String arr[] ={"lady", "bird", "is","bird","lady","cook"};
int len = arr.length;
System.out.println("Size "+len);
for(int i=0 ; i<=len;i++){
for(int j=1 ; j< len-1;j++){
if(arr[i]==arr[j]){
System.out.println("Duplicate "+arr[i]);
}
}
}
}
}
# 1 楼答案
这将为您提供一个包含重复项及其计数的列表:
# 2 楼答案
有几个问题
注意:我把
j=1
改为j=i
,把==
改为.equals
,把<=
改为<
,把len -1
改为len
# 3 楼答案
您必须将代码更改为:
O/p:
# 4 楼答案
第一个字符串将与
.equals()
而不是==
进行比较我建议您使用
sets
,因为它们不允许在其中输入重复的值,或者使用列表检查它是否已经存在。contains()方法# 5 楼答案
输出:
# 6 楼答案
您可以使用以下更简单的方法
在您现有的代码中,像
arr[i].equals(arr[j])
一样查看值是否相等(如果相等,则重复)==
检查引用等价性,而equals()
方法检查值等价性,所以当需要检查两个对象的等价性时,应该使用equals方法希望有帮助
祝你好运