简单的文字搜索功能
来源:互联网 发布:方太 超声波 农残 知乎 编辑:程序博客网 时间:2024/06/11 05:45
import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.HashSet;import java.util.List;public class SerachBase {//存储搜索域,index为每个字的char值private static HashSet[] searchid = new HashSet[100000];//存储搜索域中的词汇在搜索文字中出现的次数private HashMap<String, Integer> searchtimes;//存储搜索结果的javabean,times存储含有搜索文字的次数,依次排序进行显示class searchbean implements Comparable<searchbean>{private String word;private int times;public String getWord() {return word;}public void setWord(String word) {this.word = word;}public int getTimes() {return times;}public void setTimes(int times) {this.times = times;}@Overridepublic int compareTo(searchbean o) {if (this.times<o.times){return -1;}else if(this.times>o.times){return 1;}else{return 0;}}}//搜索public List<searchbean> search(String word) {searchtimes=new HashMap<String, Integer>();//记录含有word中文字的词语HashSet<String> haveword=new HashSet<String>();for(int i=0;i<word.length();i++){int where = word.charAt(i);int time=0;if(searchid[where]==null){continue;}HashSet<String> a=searchid[where];for(String s1:a){if(s1.indexOf(word.substring(i, i+1))!=-1){time+=1;searchtimes.put(s1, time);haveword.add(s1);}}}List<searchbean> l1=new ArrayList<SerachBase.searchbean>();for(String s2:haveword){searchbean s1=new searchbean();s1.setWord(s2);s1.setTimes(searchtimes.get(s2));l1.add(s1);}//排序Collections.sort(l1);return l1;}//将String存入到搜索域public void addsearchword(String word){for(int i=0;i<word.length();i++){int where=word.charAt(i);HashSet<String> a=searchid[where];if(a==null){a=new HashSet<String>();a.add(word);searchid[where]=a;}else{a.add(word);searchid[where]=a;}}}public static void main(String[] args) {SerachBase s1=new SerachBase();s1.addsearchword("萨达");s1.addsearchword("拉萨");s1.addsearchword("达姆");List<searchbean> l1=s1.search("拉萨");for(searchbean s:l1){System.out.println(s.getWord());}}}
阅读全文
0 0
- 简单的文字搜索功能
- 简单的数据库搜索功能
- winXP搜索功能 "包含文字" 搜索不到内容的解决办法
- winXP搜索功能 "包含文字" 搜索不到内容的解决办法
- jQuery 动态文字搜索功能
- iOS tableview 实现简单的搜索功能
- iOS tableview 实现简单的搜索功能
- iOS tableview 实现简单的搜索功能
- UISearchBar, NSPredicate 实现简单的搜索功能
- UISearchController搜索功能的简单使用
- LuceneInAction-实现简单的搜索功能
- C# ListView 简单的搜索功能
- PHP+MYSQL简单的搜索功能
- swift 搜索框(UISearchBar)实现简单的搜索功能
- thymeleaf实现简单的条件搜索并分页搜索功能
- 120941138报:winXP搜索功能 "包含文字" 搜索不到内容的解决办法
- 原生JavaScript简单的静态搜索过滤文字(只支持中文,暂无拼音搜索)
- 简单概述Linux文件搜索的功能和应用
- 聚合函数和Group by
- 纯 CSS 实现三角形尖角箭头的实例
- 安装使用supervisor
- Nginx fastcgi_param 详解
- tail recursion
- 简单的文字搜索功能
- 递归算法计算阶乘(五)
- Android关于列表卡顿的问题(或者说两个列表数据关联的问题)
- 英语单词(2)
- 用systemctl启动es报错文件描述符不够只有4096
- 数据库中Timestamp格式用String接收后,尾巴多了.0
- 使用BBB的device tree和cape(重新整理版)
- 给初学者的RxJava2.0教程(三)
- 提交Unity工程时务必不要忘记提交.project和.asset相关信息