如何用java实现模糊查询

Posted

tags:

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

比如说我有个集合ArrayList<String> aList,
aList中的元素的规范是前三个是英文 当中是两个数字再是两个字母两个数字
形如abc12de34,
现在问题是如何找到
aList中有哪些元素符合形如abc02de02这样的规范(当中的数字皆为02),并且返回他们的索引。

最好能给出一个完整的代码,效率也高一些的
谢谢

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class TestDemo
public static void main(String[] args)
List<String> aList=new ArrayList<String>();
aList.add("abc12de34");
aList.add("abc02de02");
String regex="^[a-zA-Z]302[a-zA-Z]202$";
Iterator<String> it =aList.iterator();
while(it.hasNext())
String str=it.next();
System.out.println(str+"==");
if(str.matches(regex))
System.out.println(str);




参考技术A

    要实现模糊查询,首先得明白所使用的数据库到底是什么,对应的语句又是什么;

    一般而言模糊查询要根据所搜索的内容进行模糊匹配;

    关键字like的实现

    例如:select * from table where name like %yugi%;

参考技术B 你调用这个方法,返回的List就是你要的结果了
public static List<Integer> find(List<String> strList)
List<Integer> resultList = new ArrayList<Integer>();
String regex = "[a-zA-Z]302[a-zA-Z]202";
for(int i = 0; i < strList.size(); i++)
Matcher matcher = Pattern.compile(regex).matcher(strList.get(i));
if(matcher.matches())
resultList.add(i);


return resultList;
参考技术C for(int i=0;i<aList.length();i++)
if((aList.charAt(4)=='0')&&(aList.charAt(5)=='2')&&(aList.charAt(7)=='0')&&(aList.charAt(8)=='2'))
System.out.println(i);


最好自己敲进去,应该没什么问题
参考技术D 对于模糊查询T-SQL有四个通配符
%:包含0个或多个字符
_:匹配指定;
[]:指定范围
[^]:排除范围
对于稍复杂点的关键词搜索(比如新闻),常用的办法是在数据库中添加一个keyword字段,来配合通配符进行模糊查询或分类查询或热门关键字查询。关于复杂点的模糊查询,更好的方法是不用这些通配符来实现,而是通过js来实现(例如输入时产生搜索提示),或其他方法来作,思路是尽量少的对数据库进行操作。
    官方服务
      官方网站官方网站

jqgrid表格里面的下拉框能不能实现模糊查询

图上,机场中文名是使用下拉框,但是这种下拉框选择不能模糊查询很不方便,

参考技术A 在表sheet1的A1中输入一个数字如6,然后在表sheet中的随便一格中输入:

=Sheet1!A1

它就会显示6

如果将表sheet1的中数字改变,如改为9,再到表sheet中看,那一格同样变成了9

就是这样了追问

不是excel,使用java。。

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

如何用php对mongodb进行模糊查询

如何用php对mongodb进行模糊查询

如何用EXCEL VBA编写模糊查询程序,并将结果显示在工作表中

jqgrid表格里面的下拉框能不能实现模糊查询

java项目中如何实现多选项的模糊或者精确查询

java项目中如何实现多选项的模糊或者精确查询