我有一个必须解析不同关键字的字符串。例如,我有字符串:
“我会来123woods见你”
我的关键词是
‘123 森林’
‘树木’
每当我有比赛和在哪里比赛时,我都应该报告。还应考虑多次出现。
但是,对于这个,我应该只在 ‘123woods’ 上得到一场比赛,而不是在 ‘woods’ 上。这消除了使用 String.contains()
方法。此外,我应该能够拥有一个关键字列表/组,并同时检查它们的出现。在这个例子中,如果我有 ‘123woods’ 和 ‘come’ ,我应该得到两次。在大文本上方法执行应该有点快。
我的想法是使用 StringTokenizer
但我不确定它是否会表现良好。有什么建议么?
原文由 Nikola Yovchev 发布,翻译遵循 CC BY-SA 4.0 许可协议
以下示例基于您的评论。它使用关键字列表,将使用单词边界在给定的字符串中搜索。它使用来自 Apache Commons Lang 的 StringUtils 来构建正则表达式并打印匹配的组。
如果您正在寻找更高的性能,您可以查看 StringSearch :Java 中的高性能模式匹配算法。