java关键字查询算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java关键字查询算法相关的知识,希望对你有一定的参考价值。

大家好,我要实现一个java关键字查询算法
在一个.txt中,有一段文字
当在我的程序界面中输入关键字后
可以在.txt中查询
并将查询结果返回到程序界面
只须返回true/false
"我邹是想知道"非常感谢你的回答
你的回答我认真的看了一下,也上机调试了。.tex文件里的文字是汉字,关键字也是汉字(我需要的是返回在.txt文件中是否存在关键字,出现的位置以及次数)
1,s.indexOf(key)方法返回的是指定字符(key)在此字符串中第一次出现处的索引,如果关键字在字符串中出现了2次呢
2,好像不能分段查询,即指出在第一自然段的某处,在第二自然段的某处
再次对你的回答表示感谢!!!

import java.io.FileReader;
import java.io.BufferedReader;
import java.io.File;

public class search

//查找方法,参数,文件绝对路径,查找关键字
public static boolean search(String filepath,String key)

try

File f = new File(filepath);
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = "";
//int i = 1;
while((s = br.readLine()) != null)

if(s.indexOf(key) != -1)

return true;


return false;

catch(Exception e)

e.printStackTrace();
return false;


public static void main(String args[])

System.out.println(search.search("d://t.txt","l2"));



修改了下,加两个变量,可以指出查找的位置。
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.File;

public class search

//查找方法,参数,文件绝对路径,查找关键字
public static String search(String filepath,String key)

try

File f = new File(filepath);
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = "";
int i = 1;
int m = 0;
while((s = br.readLine()) != null)

if((m = s.indexOf(key)) != -1)

return "第"+i+"段,第"+m+"处";

i++;

return null;

catch(Exception e)

e.printStackTrace();
return null;


public static void main(String args[])

System.out.println(search.search("d://t.txt","asd"));



这个,查汉字是没有问题的。
另外,你要全文检索的话,indexOf()还有个方法,indexOf(int start,String key),指定开始查找的位置跟关键字,你查到一处后,将这个数值加1,做为继续查找的开始位置就可以了。
参考技术A 你是不是要做文本编辑器?或者是本地搜索类的软件?
如果是的话,恐怕你要去看看自然语言处理方面的东西。
比如分词。你需要把你的要查询的文档分词,然后按照分词的结果做索引。这样才可以!
参考技术B 这样做不完善啊 假如别人输入
int String
或者
int S
好像也会被认为是关键字吧。
参考技术C 就用readline方法,
一行一行地查吧,
楼上的算法还是可行的,
要指出在哪一行,
直接在readline中设置一个变量就可以了,
扫过一行自增就行
另外个人认为,
还要考虑这样一种情况,
比如说关键字为 java
但 ja
va
被分开在两行中了,
这个怎么算呢?

Java面试题

Java8新特性

https://blog.csdn.net/sanri1993/article/details/101176712

jdk1.7和1.8的区别:

添加了红黑树,增加查询效率


gc算法(垃圾回收算法)

https://www.jianshu.com/p/3fc4450e1bbd


static关键字

https://blog.csdn.net/qq_34337272/article/details/82766943


int和integer

https://blog.csdn.net/chenliguan/article/details/53888018


程序的结构

https://zhidao.baidu.com/question/561343838.html


ArrayList和LinkedList区别

https://www.cnblogs.com/lingshang/p/10897912.html


arraylist扩展机制

http://www.imooc.com/article/278549


vector集合

https://www.cnblogs.com/0820LL/p/9665811.html


hashmap结构,为什么用的是链表,为什么用的是数组

https://www.cnblogs.com/sxkgeek/p/9341350.html


hashmap和hashset的区别

https://blog.csdn.net/chen213wb/article/details/84647179


hashset和treemap的区别

https://blog.csdn.net/sinat_25444819/article/details/102457592


hashmap和hashtable区别

https://www.cnblogs.com/williamjie/p/9099141.html


排序算法

https://www.cnblogs.com/onepixel/articles/7674659.html


查找算法

https://www.iteye.com/blog/xiaojun-it-2291852


set、map、list等集合

https://blog.csdn.net/daily11/article/details/51086245


集合和数组的区别

https://www.cnblogs.com/hewanli/p/12306479.html

 

集合和数据相互转换

https://www.cnblogs.com/aspirant/p/10396220.html

 

网络数据模型

https://www.cnblogs.com/fakeCoder/p/5093744.html


网络传输协议

https://www.cnblogs.com/wangcp-2014/p/10083565.html


tcp三次握手四次挥手

https://baijiahao.baidu.com/s?id=1654225744653405133&wfr=spider&for=pc


socket和serversocket区别

https://www.cnblogs.com/mareymarey111/archive/2011/12/08/2280253.html


线程和进程

https://www.cnblogs.com/yuxiang1/p/10608497.html


线程的创建方式

https://www.cnblogs.com/htyj/p/10848646.html


线程的周期

https://www.cnblogs.com/marsitman/p/11228684.html


线程池

https://www.cnblogs.com/superfj/p/7544971.html


线程.run和.start的区别

https://blog.csdn.net/kapukpk/article/details/53008516

技术图片

 

 

 这里应该是cpu


线程优先级

https://blog.csdn.net/qq_35400008/article/details/80219947


线程调度

https://www.iteye.com/blog/youyu4-2351235


Lock与synchronized区别

https://msd.misuland.com/pd/3255817997595448438


公平锁和非公平锁
死锁
Java多线程之线程交互
转发和重定向的区别
mysql索引
mysql实现分页
mysql存储引擎
b+树、红黑树、二叉树概念
接口和抽象类的区别
面向对象三大特征
乐观锁和悲观锁
sychronized关键字
redis(缓存穿透、缓存雪崩)布隆过滤器,多路复用模型和非阻塞模型

以上是关于java关键字查询算法的主要内容,如果未能解决你的问题,请参考以下文章

Java面试题

Java复习总结思维导图

Java复习总结思维导图

Java排序算法

java模糊关键字查询

二分查找算法(JAVA)