我试图选择包含最多匹配的前3个字符串。
我会这样解释:
假设我们有以下关键字:" pc,编程,php,java"
和以下句子:
a[0]="what is java??"<br>
a[1]="I love playing and programming on pc"<br>
a[2]="I'm good at programming php and java"<br>
a[3]="I'm programming php and java on my pc"<br>
所以只能选择最后3个字符串,因为它们是包含最多匹配项的前3个字符串 如何在java ???
中执行此操作答案 0 :(得分:1)
如果您的数据集很小并且您只关心完全匹配,则可以执行以下操作:
遍历每个句子,执行indexOf检查每个关键字。如果返回的值不是-1,则递增该句子的计数器。对每个关键字重复一次最后找到具有最高计数器的3个句子。
这种方法会遇到各种各样的问题,包括:
理想情况下,你会使用像Lucene / Solr / ElasticSearch这样的全文引擎,让你为你做所有繁重的工作
答案 1 :(得分:1)
可以说最简单的方法是使用Regex,一个基于表达式的系统,用于搜索字符串中的模式。
选择一个教授Regex的网站。我建议这个首发。 http://regexone.com/
然后,熟悉Java Regex。我建议调查捕获组。
我不会给你代码来做这件事,因为我相信你可以看到许多在线例子,并且最好自己学习如何做到这一点。