java中如何模糊查找

Posted

tags:

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

指的是在txt文件中(一篇文章),拿一句话进行模糊查找,需要定义算法么?如果代码不多的话麻烦给个简单示例
一楼这个还是精确查找啊,我指的模糊查找是词不同,但意思相关,举个例子,比如有一句话“一个小孩在认真的读书。”,然后拿“小孩读书”进行模糊查找,这时如果用indexof是找不到的,应该怎么解决呢?

你这个把四个字拆开单独找不就完了= =
所谓的模糊查找最多也就像sql里面的like
计算机本身就是精确的。你要模糊就要加入人为判断这是毋庸置疑的。
参考技术A 你好,按照你的要求代码如下

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class text
public static void main(String[] args)

try
String key = "这个字符串是将进行模糊查找的";
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("d:\\一篇文章.txt")));

StringBuffer str = new StringBuffer();
String temp;
while (null != (temp = in.readLine()))
str.append(temp);


int first = str.indexOf(key);
if (first != -1)
System.out.println("【" + key + "】在文章中的首次出现位置是:" + first);
else
System.out.println("【" + key + "】在文章中没有找到");

catch (FileNotFoundException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();


参考技术B 如果是数据库模糊查找的话,只需用like语句,
例如:
select * from emp where enp_name like “%天%”

查询用户中姓名中有“天”字的用户信息
参考技术C 你是指数据库模糊查询吗?
数据库模糊查询用 like
如果是查询源码
ctrl+f
参考技术D 这个只能是sql中的吧:
select * from tablename where 字段like '%条件%'

LDAP在JAVA中如何模糊查询

参考技术A /** * 获得LDAP连接(不通过连接池,直接获得连接) * @return * @throws Exception */ private javax.naming.directory.DirContext getDirContext() throws Exception DirContext ctx = null; java.util.Hashtable env = new java.util.Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://localhost:389"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_PRINCIPAL, user); env.put(Context.SECURITY_CREDENTIALS, pwd); ctx = new InitialDirContext(env); return ctx; /** * 返回用户查询接口 * @param DN 查找范围 ou=test,dc=abcd,dc=com * @param filter 过滤条件 cn=* * @param myserach 搜索范围 * @return LDAP标准接口 * @throws Exception */ public javax.naming.NamingEnumeration getFilter(String DN,String filter,int myserach) throws Exception DirContext ctx = getDirContext(); try NamingEnumeration em; SearchControls con = new SearchControls(); con.setSearchScope(myserach); em = ctx.search(DN, filter, con); return em; finally // /** * 设置条件查找 * @param dn 查找的根结点 * @param filter 查找条件 * @param level 查找范围 * @return 返回一个由DN组成的JAVA STRING 列表 * @throws Exception */ public java.util.Vector getfilterNodes(String dn,String filter,int level) throws Exception java.util.Vector ve=new java.util.Vector(); NamingEnumeration em=getFilter(dn,filter,level); while(em!=null && em.hasMoreElements()) SearchResult rs=(SearchResult)em.nextElement(); String db=rs.getName(); if (db.trim().equals("")) ve.add(dn); else ve.add(db+","+dn); return ve; 查看原帖>>本回答被提问者采纳

以上是关于java中如何模糊查找的主要内容,如果未能解决你的问题,请参考以下文章

KingbaseES 模糊查找

java模糊查询问题,代码如下,总是接收不到查询结果,但是如果用精确查找就能接受到查询结果?

如何模糊查找姓李的SQL语句

如何设计ComboBox的过滤功能,直接能模糊查找

Java Swing 编程 JComboBox 实现模糊查找功能。

linux怎么模糊查找一个文件