如何将 List<String> 与 String 进行比较?

Posted

技术标签:

【中文标题】如何将 List<String> 与 String 进行比较?【英文标题】:How can I compare a List<String> against a String? 【发布时间】:2020-09-28 15:07:38 【问题描述】:

我目前有这个代码:

    private boolean checkWildcardFilter(String contentStripped, GuildTransformer guild) 
        String words = contentStripped.toLowerCase();
        List <String> badWordsList = replace(guild.getBadWordsWildcard());
        System.out.println("UWords: " + words);
        System.out.println("FWords: " + badWordsList);
        
        return words.stream().anyMatch(badWordsList::equals);
    

在示例中 applehi 应该被过滤

我想要它做的是检查句子“我会和我的新 hire. 一起去吃一个盛大的apple。”。无论句子中的什么位置,它都需要找到“apple”和“hi”这两个词。如果它找到它,它应该过滤

它是用 Java 编写的,单词来自数据库:database entry

它会解码为:(一些脏话)

["***", "***", "***", "***"]

【问题讨论】:

也许这个? ***.com/questions/3209580/… 哦,对了@Inga 我还没有解释,这是不和谐的。所以我不能编辑消息。它与 Java 一起使用。不是 C++/C# 另外,可能的东西来自数据库,它以base64加密的列表形式存储 字符串的来源无关紧要,无论是数据库还是base64。这个问题本身也与 Discord 无关。如果您在使用数据库、base64 或不和谐时遇到问题,请提出单独的问题。 是的,我应该对此进行更多解释。我是 SOF 的新手。我会尽量改进我的问题:) 【参考方案1】:

我认为您需要检查字符串是否包含任何字符序列。

如果那来自数据库,您将需要使用适当的查询/数据库连接/等来检索您想要的那些。

如果关键字已加密,则必须对其进行解密。有几个解密库,你只需要知道你说的是“什么”语言

正如@***soft 提到的,您在这里尝试解决多个问题。建议将它们分成 3 份,以便您提出非常客观的问题。

对于字符串位置,可以使用这个依赖:

Apache Utils

可以在类似问题上找到更多详细信息:

How do I check if a string contains a list of characters?

【讨论】:

【参考方案2】:

我目前有一些我可以使用的东西,但我正在寻找改进,我能做些什么来改进它?

我有东西可以用;

    private boolean checkWildcardFilter(String contentStripped, GuildTransformer guild) 
        String words = contentStripped.toLowerCase();
        List <String> badWordsList = replace(guild.getBadWordsWildcard());
        //System.out.println("UFWords: " + words);
        //System.out.println("FWords: " + badWordsList);

        for (String word : badWordsList) 
            if (words.contains(word)) 
                return true;
            
        
        return false;
    

【讨论】:

以上是关于如何将 List<String> 与 String 进行比较?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 List<string> 转换为 List<myEnumType>?

将 ComboBox 与 List<string> 同步 [C#]

如何将map<string list<>>转换成城map<string,object>

如何将 List<int> 转换为 string[]?

如何将 Hashmap 中的值转换为 List<String>

如何将 Mono<List<String>> 转换为 Flux<String>