gpt4 book ai didi

java - 如何使用 foreach 循环检测 ArrayList 中的字符串?

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

公共(public)字符串搜索编号(字符串名称){ 字符串结果=“”;

    for(Person search: person){
if(search.getName().contains(name)){
result += search.getNumber();
}
else{
result = " number not known ";
}
}
return result;

}

在这里寻求一些关于如何解决我遇到的问题的建议。这是一个我希望使用 getName 方法来查看本地实例(名称)是否在 ArrayList 中的方法。但是,我只显示后一个结果,并显示“数字未知”。我的逐步过程是这样的:我创建一个 Person(搜索)实例,访问 getName 方法,访问 contains 方法,因为它最初是一个 String 方法,然后检查本地实例是否在数组列表。如果我的逻辑不正确,请纠正我。另外,访问 person 数组是否会阻止我在 for-each 循环中使用 String 类型,因为它是 Person 对象?我尝试使用 String 类型执行此操作,但无法继续继续,因为我无法在 for-each 循环中转换为 String 。

最佳答案

以下是当前代码的分割:

您考虑 person 列表中的每个对象。如果该人的名字与参数匹配,您就可以从中获取号码。否则,您将 result 设置为错误消息。请注意,否则子句适用于每个人,而不是在发现没有人具有相同名称的情况下应用到最后。也就是说,即使您找到了正确的人并将结果分配给了他们的号码,如果下一个人不正确,您也会再次将结果覆盖到错误消息中。

为了确保错误消息仅在未找到 NOBODY 时分配一次,您需要在检查完每个人后检查这是否为真(因为在检查每个人之前您无法知道是否没有找到任何人!)。现在的技巧是找到一些在没有找到任何人时始终为真的子句。但这只是在 result 从未被修改过的情况下发生的。也就是说,您可以在声明时将 result 设置为默认值,然后仅在找到合适的人时才将其修改为数字。另外,我假设应该只找到一个人,并且您不想实际将数字连接在一起(这就是您使用 += 所做的事情)。也就是说,试试这个:

public String searchNumber(String name){
for (Person search: person){
if (search.getName().contains(name)){
return search.getNumber();
}
}

return " number not known ";
}

关于java - 如何使用 foreach 循环检测 ArrayList 中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61240847/

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