首页 > 解决方案 > 从数组列表中返回第一个索引,其中发现字符串逻辑混乱

问题描述

伙计们,所以我有我正在尝试构建的这种方法,我只是很难理解逻辑。这是该方法的条件:

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));
            
    }

标签: java

解决方案


你实际上有点过于复杂了

public int search(String str) {
    for(String s : words) {
        if(s.equalsIgnoreCase(str)) {
            return words.indexOf(s);
        }
    }
    return -1;
}

由于 return 方法将停止在函数中运行更多代码,因此它将始终返回第一个匹配的单词。


推荐阅读