如何用java实现模糊查询 20
比如说我有个集合ArrayList<String>aList,aList中的元素的规范是前三个是英文当中是两个数字再是两个字母两个数字形如abc12de34,现在问题是如...
比如说我有个集合ArrayList<String> aList,
aList中的元素的规范是前三个是英文 当中是两个数字再是两个字母两个数字
形如abc12de34,
现在问题是如何找到
aList中有哪些元素符合形如abc02de02这样的规范(当中的数字皆为02),并且返回他们的索引。
最好能给出一个完整的代码,效率也高一些的
谢谢 展开
aList中的元素的规范是前三个是英文 当中是两个数字再是两个字母两个数字
形如abc12de34,
现在问题是如何找到
aList中有哪些元素符合形如abc02de02这样的规范(当中的数字皆为02),并且返回他们的索引。
最好能给出一个完整的代码,效率也高一些的
谢谢 展开
7个回答
展开全部
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]{3}02[a-zA-Z]{2}02$";
Iterator<String> it =aList.iterator();
while(it.hasNext()){
String str=it.next();
System.out.println(str+"==");
if(str.matches(regex)){
System.out.println(str);
}
}
}
}
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]{3}02[a-zA-Z]{2}02$";
Iterator<String> it =aList.iterator();
while(it.hasNext()){
String str=it.next();
System.out.println(str+"==");
if(str.matches(regex)){
System.out.println(str);
}
}
}
}
展开全部
要实现模糊查询,首先得明白所使用的数据库到底是什么,对应的语句又是什么;
一般而言模糊查询要根据所搜索的内容进行模糊匹配;
关键字like的实现
例如:select * from table where name like %yugi%;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你调用这个方法,返回的List就是你要的结果了
public static List<Integer> find(List<String> strList) {
List<Integer> resultList = new ArrayList<Integer>();
String regex = "[a-zA-Z]{3}02[a-zA-Z]{2}02";
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;
}
public static List<Integer> find(List<String> strList) {
List<Integer> resultList = new ArrayList<Integer>();
String regex = "[a-zA-Z]{3}02[a-zA-Z]{2}02";
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
}
最好自己敲进去,应该没什么问题
if((aList.charAt(4)=='0')&&(aList.charAt(5)=='2')&&(aList.charAt(7)=='0')&&(aList.charAt(8)=='2')){
System.out.println(i);
}
}
最好自己敲进去,应该没什么问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2022-07-29 · 百度认证:IT168官方账号,优质数码领域创作者
关注
展开全部
对于模糊查询T-SQL有四个通配符
%:包含0个或多个字符
_:匹配指定;
[]:指定范围
[^]:排除范围
对于稍复杂点的关键词搜索(比如新闻),常用的办法是在数据库中添加一个keyword字段,来配合通配符进行模糊查询或分类查询或热门关键字查询。关于复杂点的模糊查询,更好的方法是不用这些通配符来实现,而是通过js来实现(例如输入时产生搜索提示),或其他方法来作,思路是尽量少的对数据库进行操作。
%:包含0个或多个字符
_:匹配指定;
[]:指定范围
[^]:排除范围
对于稍复杂点的关键词搜索(比如新闻),常用的办法是在数据库中添加一个keyword字段,来配合通配符进行模糊查询或分类查询或热门关键字查询。关于复杂点的模糊查询,更好的方法是不用这些通配符来实现,而是通过js来实现(例如输入时产生搜索提示),或其他方法来作,思路是尽量少的对数据库进行操作。
-
官方服务
- 官方网站
- 官方网站
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询