如何用java实现模糊查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用java实现模糊查询相关的知识,希望对你有一定的参考价值。
比如说我有个集合ArrayList<String> aList,
aList中的元素的规范是前三个是英文 当中是两个数字再是两个字母两个数字
形如abc12de34,
现在问题是如何找到
aList中有哪些元素符合形如abc02de02这样的规范(当中的数字皆为02),并且返回他们的索引。
最好能给出一个完整的代码,效率也高一些的
谢谢
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%;
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实现模糊查询的主要内容,如果未能解决你的问题,请参考以下文章