作者:jijs
链接:http://www.jianshu.com/p/62f4a5596278
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
public class TokenizerDemo {
private static Map<String, String> map = new HashMap<String, String>();
//词典中最长词的长度,map中的key的最长长度
private static final int maxSize = 3;
static{
//可以从数据库中加载或词表中加载
map.put("中国", "");
map.put("北京", "");
map.put("中关村", "");
map.put("海淀", "");
}
public static void main(String[] args) {
String text = "中国人民共和国首都是北京,中关村在海淀区。";
int length = text.length();
for(int i=0; i<length; i++){
int endIdx = i+maxSize;
if(endIdx>length){
endIdx = length;
}
//最大逆序匹配
for(int j=0; j<maxSize; j++){
String s = text.substring(i, endIdx);
if(map.get(s)!=null){
i=endIdx-1;
System.out.println(s);
break;
}else{
endIdx-=1;
if(endIdx==i){
break;
}
}
}
}
}
}
之前在群里看到作者发出来了这个文章,发现有点小问题,没有跳过匹配的词,联系了作者已经改了过来。
网友评论