如何比较 List<String> 和 String?

How can I compare a List<String> against a String?

我目前有这个代码:

    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”和“hi”。如果找到它,它应该过滤

它在 Java 中,单词来自数据库:database entry

它解码为:(一些脏话)

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

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

如果它来自数据库,您将需要使用适当的 queries/DB connection/etc..

检索您想要的那些

如果关键字被加密,您将必须对其进行解密。有几个解密库,你只需要知道"what"你说的语言

正如@Clashsoft 所提到的,您要在此处解决多个问题。建议将它们分成 3 个,这样你就有很多 objective 个问题。

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

Apache Utils

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

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

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

我有东西可以用;

    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;
    }