如何将 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);
在示例中 apple 和 hi 应该被过滤
我想要它做的是检查句子“我会和我的新 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>