0

我试图让它根据包含某个输入字符串的数组条目返回一定数量的数组条目。

/**
* This method returns a list of all words from
* the dictionary that include the given substring.
*/
public ArrayList<String> wordsContaining(String text)
{
    ArrayList<String> contentCheck = new ArrayList<String>();
    for(int index = 0; index < words.size(); index++)
    {
        if(words.contains(text))
        {
            contentCheck.add(words.get(index));
        }
    }
    return contentCheck;
}

我不明白为什么这会不断返回数组中的每个值,而不仅仅是包含字符串位的条目。谢谢!

4

2 回答 2

3

你的情况:

if(words.contains(text))

检查是否text在列表中。这将true适用于所有元素或没有元素

你想要的是:

if(words.get(index).contains(text))

除此之外,如果您使用增强的 for 语句会更好:

for (String word: words) {
    if(word.contains(text)) {
        contentCheck.add(word);
    }
}
于 2013-10-24T15:51:13.553 回答
1

您的代码中有 2 个问题

第一个是你检查你的条件

if(words.contains(text))text-清单中的这张支票

你可能想要的是检查给定的列表项是否包含text

public List<String> wordsContaining(String text)
{
    List<String> contentCheck = new ArrayList<String>();
    for(String word : words) //For each word in words
    {
        if(word.contains(text)) // Check that word contains text
        {
            contentCheck.add(word);
        }
    }
    return contentCheck;
}
于 2013-10-24T15:57:47.303 回答