首页 > 解决方案 > 如何检查ArrayList中的项目不包含某个词?

问题描述

我想使用这样的 for 循环:

`button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    Object.setList();

for(int i = 0; i < Object.getList.size(); i++)
    if(!Object.getList.get(i).trim().toLowerCase().contains("hello")) {
        Toast.makeText(getContext(), "List does not contain "Hello", Toast.LENGTH_LONG).show;
    }
}`

这是我的模型:

public class Object {
    private ArrayList<String> mArrayList;

    public void setList() {
        mArrayList = new Arraylist<>();
        mArrayList.add("Random Message");
        mArrayList.add("ZZZZ")
    }

    public ArrayList<String> getList() {
        return mArrayList;
    }
}

我仍然不断收到 Toast 消息,但是当我使用它时它工作得很好:

if(!Object.getList().toString.trim().toLowerCase().contains("hello"))

标签: javastringfor-loopif-statementarraylist

解决方案


我不太确定这个表达式如何:

Object.getList().toString.trim().toLowerCase().contains("hello")

作品。考虑两个相邻的元素:“he”和“llo”。即使在这种情况下,您的解决方案也会声明字符串“hello”存在于ArrayList. 由于存在 ho 散列ArrayList,唯一的解决方案是通过蛮力(给出 的性能O(n))。这是解决方案:

for(String element: list) {
   if (str.equalsIgnoreCase(element)) {
       // Found
   }
}

推荐阅读