如何检查字符串列表是否包含特定值?

时间:2017-03-26 19:38:52

标签: java android string

我正在尝试查看字符串的ArrayList是否包含位于另一个字符串中的单词,但我做错了。这是我的代码: 这是我的ArrayList

的一个例子

titles = {“Sodium”,“Lithium”,“Allura Red AC”};

String ocrRes = "I want some sugar  , and some coffee with Allura Red AC , Ponceau 4R ";

    for (int i = 0; i < titles.size() ; i++)
    {

            if (ocrRes.contains(titles.get(i)) )
            {
                ocrResult.setText(titles.get(i));
            }


    }

任何帮助将不胜感激。提前谢谢。

4 个答案:

答案 0 :(得分:1)

以下是如何在字符串数组中找到特定单词的大纲:

String[] array;
//will return the index of the array where word found.

int checkWord(String searchWord)
{
   for(int i = 0; i < array.length; i++)
   { 
           if (searchWord.equals(array[i]))
               return i;
   }
}

你可以实现类似的东西来在你的数组中找到一个单词,希望这有助于:)

答案 1 :(得分:1)

您的代码似乎工作得很好...... 你可能没有使用ArrayList

像这样使用:

    List<String> titles = new ArrayList<>();
    titles.add("Sodium");
    titles.add("Lithium");
    titles.add("Allura Red AC");

    String ocrRes = "I want some sugar  , and some coffee with Allura Red AC , Ponceau 4R ";

    for (int i = 0; i < titles.size() ; i++)
    {
        if (ocrRes.contains(titles.get(i)) )
        {
           ocrResult.setText(titles.get(i));
        }
    }

修改

我在你对其他答案的评论中看到你需要另一个带有相应索引的列表,所以只需创建一个数组列表,就像我在上面的代码中显示的那样...

顺便说一句你似乎初始化你的列表的方式就像你正在创建一个数组 这是不同的类型,看起来像这样:

String[] array = {"Sodium " , " Lithium " , "Allura Red AC"};

GL

答案 2 :(得分:0)

这是使用ListIterator

的另一个选项
    String ocrRes = "I want some sugar  , and some coffee with Allura Red AC , Ponceau 4R ";

    List<String> titles = Arrays.asList("Sodium", "Lithium", "Allura Red AC");
    ListIterator<String> iterator = titles.listIterator();

    while (iterator.hasNext()) {
        String title = iterator.next();

        if(ocrRes.contains(title)) {
            System.out.println(title);
        }
    }

答案 3 :(得分:0)

你可以尝试这个。如果字符串的ArrayList包含位于另一个String中的单词。它将仅显示String

示例代码

String str = "I want some sugar  , and some coffee with Allura Red AC , Ponceau 4R ";
    List<String> myList = Arrays.asList("Sodium", "Lithium", "Allura Red AC");
    myList.forEach(new Consumer<String>() {
            public void accept(String s) {
                if(str.contains(s)) {
                    System.out.println(s);
                }
            }

        });