java - 从数组列表中返回第一个索引,其中发现字符串逻辑混乱
问题描述
伙计们,所以我有我正在尝试构建的这种方法,我只是很难理解逻辑。这是该方法的条件:
public int search(String str) – 在列表中搜索参数 str。无论大小写,搜索都应该有效。例如,“TOMATO”等价于“tomato”。</p>
提示:String 类有一个名为 equalsIgnoreCase 的方法。如果字符串 str 在 ArrayList 中出现多次,则返回找到字符串 str 的第一个索引,如果在 ArrayList 中未找到字符串 str,则返回 -1。
这是我到目前为止的代码,我不确定这是否是正确的方法。我的 ArrayList 被定义为单词。
为了解决这个问题,我正在考虑使用 foreach 语句遍历 ArrayList,然后使用 If 检查单词是否匹配,然后根据匹配返回 Index 值,但我收到错误。我遇到的另一个困惑是我如何只返回第一个索引值。也许我做错了。任何帮助或方向表示赞赏。
public int search(String str)
{
for(String s : words)
if(s.contains(s.equalsIgnoreCase(str)))
return s.get(s.equalsIgnoreCase(str));
}
解决方案
你实际上有点过于复杂了
public int search(String str) {
for(String s : words) {
if(s.equalsIgnoreCase(str)) {
return words.indexOf(s);
}
}
return -1;
}
由于 return 方法将停止在函数中运行更多代码,因此它将始终返回第一个匹配的单词。
推荐阅读
- html - 为什么非 ASCII 字符的文本有正确的填充?
- docker - Docker-compose up 删除我现有的容器
- node.js - 如何使用 msnodesqlv8 将表名作为参数传递?
- python - Pycharm Python 未使用的子类导入尽管它们被隐式使用
- python - 过程控制速度
- angular - 带有参数的 Http 帖子在 Postman 中工作,但在我的 Angular 应用程序中不起作用
- java - 我可以使用自定义项目目录结构打包 JavaFX 应用程序吗?
- javascript - Javascript从二进制数据下载不完整/损坏的文件创建blob
- c# - Xamarin Forms 如何将 ContentPage 注入 Frame 元素?
- ruby-on-rails - 过滤后获取所有关联记录