java - 使用方法在数组中搜索唯一名称
问题描述
所以我今天有考试,虽然我找到了一种让我的代码工作的方法,但我不喜欢它
public static void search(String name, Friend[] array) {
for (int i = 0; i<array.length;i++) {
if((array[i].getName()).equals(name)) {
System.out.println(name+ " is found at position " +i+"\n");
}
else {
System.out.print("\nName not in list\n");
}
}
}
所以我在这里所做的工作,我在 Friend 类型的数组中搜索我从 main 方法传递的名称。但是当它找到一个唯一的名字时我想停下来,所以虽然我喜欢我所拥有的,因为它显示了如果有多个名字我想只显示那些说包含约翰并忽略所有其他名字或者如果没有约翰,它只会打印一个“名称不在列表中”
解决方案
你在这里有两个问题:
你没有在找到名字后打破for循环你
在else部分打印'not found'消息,而不是在for循环结束后,这就是你为每个朋友得到它的原因
public static void search(String name, Friend[] array) {
for (int i = 0; i<array.length;i++) {
if((array[i].getName()).equals(name)) {
System.out.println(name+ " is found at position " +i+"\n");
return; // Stop if you found one
}
}
System.out.print("\nName not in list\n"); // print that only after going through the entire list
}
推荐阅读
- node.js - 如何使用 JWT 为我的 Google Cloud Functions 实现 POST 请求
- mysql - Dbeaver 自动将字母放在我的查询后面
- jenkins - 从 Jenkins 控制台输出中提取错误描述
- android - 用户成功登录后需要 android 应用程序启动主要活动
- python - 所有元素在 Kivy + KivyMD 中渲染两次
- ios - 使用更长的字符串本地化 ios 应用程序
- java - 如何正确使用带有 libGDX 的 open gl 调用
- regex - Apache 配置文件中 JkUnMount 的正则表达式
- asp.net-core - Windows 服务器中 Startup.ConfigureServices(IServiceCollection 服务)的 System.NullReferenceException
- reactjs - 如何从 NavLink 获取类名或道具以在无状态功能组件中与带有 react 和 redux 的谷歌标签管理器一起使用?