有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

for loop Java搜索字符串列表(如果包含另一个字符串列表)

我有一个用户推文列表(usersTweets),我需要找到包含特定关键字(listOfkeyWord)的推文,并将匹配项添加到(includeKeyWord)列表中

    String keyWord = "one,two";
    List<String> usersTweets = new ArrayList<String>();
    usersTweets.add("three nine one two");
    usersTweets.add("seven one");
    usersTweets.add("three nine ten one");
    usersTweets.add("....");

    List<String> includeKeyWord = new LinkedList<String>();

    if (keyWord.contains(",")) {
        List<String> listOfkeyWord = new ArrayList<String>(Arrays.asList(keyWord.split(",")));
        for (String tweet : usersTweets) {
            if (tweet.contains(listOfkeyWord)) {
                includeKeyWord.add(tweet);
            }
        }
    }

注意:

如何检查每条推文是否包含关键字列表。在这个例子中,我希望在(includeKeyWord)中只包含字符串“三九一二”,因为它包含单词“一”和“二”


共 (1) 个答案

  1. # 1 楼答案

    基本上,你想检查推特上是否有所有的单词,所以你需要遍历这些单词的列表,并检查你的推特上是否有所有的单词,你可以这样做:

    public boolean hasAllTheWords(String yourString, List<String> words){
      for(String word : words)
        if(!yourString.contains(word))
          return false
      return true;
    }
    

    现在你不用tweet.contains(words)而是hasAllTheWords(tweet, words)。你也可以把你的推文转换成一个单词列表,然后你已经有的就可以了(tweet.contains(words)),所以你也可以试试这个:

    Arrays.asList(tweet.split(" ")).contains(words)

    如果你尝试这种解决方案,记得要注意标点(, . ... ! ?等等)