gpt4 book ai didi

java - 我想在java中比较字符串类型数组中的字符串

转载 作者:行者123 更新时间:2023-12-02 03:51:43 25 4
gpt4 key购买 nike

我尝试了以下代码,但没有成功,我该怎么做?

 for(int i=0;i<Name.length;i++){
for(int j=i+1; j<Name.length;j++){
if(Name[i].equals(Name[j]))
{
count++;
person[i]=Name[i];
}
}
}
System.out.println("Repeated Names:");
for(int i=0; i<Name.length;i++){
System.out.println(person[i]);
}
System.out.println("Count Of Repeated Names: "+count);
}
}

最佳答案

在将 Name[i] 分配给 person[i] 的 if 语句中,“i”将随循环递增,而不是仅在向 person[] 添加某些内容时递增。相反,使用您的 count 变量(确保在任何循环之前将 count 设置为 0):

if(Name[i].equals(Name[j]))
{
boolean found=false;

for (String s: person) {
if(Name[j].equals(s)) {
found = true;
}
}
if(!found) {
person[count] = Name[i];
count++;
}
}

此外,请注意 if 语句中添加的 for 循环。如果您不检查并且已经找到名称,则可能会多次添加相同的重复项,并且可能会出现越界异常。因此,如果您的名称数组是:

{“约翰”,“约翰”,“约翰”}

您的循环将在第一次迭代中添加第二个和第三个 John,并在第二次迭代中再次添加第三个 John。

最后,要打印 person 数组而不打印空值或垃圾,您可以再次使用 count 变量:

for(int i=0; i<count;i++){
System.out.println(person[i]);
}

关于java - 我想在java中比较字符串类型数组中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35822307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com