对String进行类似数据库的模糊查询!!!请高手指教!! 参考j2sdkse1.4 documentation的java.util.regex.Pattern 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java:str.indexOf("20")==0会告诉你like '20%'的结果str.indexOf("20")>-1会告诉你like '%20%'的结果str.lastIndexOf("20")==(str.length()-2)会告诉你 like '%20'的结果最后一个str.length-2的2为20的字符串长度更复杂的你可以自己组合一下考虑.indexOf和lastIndexOf很有用的哦:) str.indexOf("20")==0&&str.length()==5会告诉你like "20___"的结果5表示"20___"的长度其它的组合和这个类试 一般的查询在数据库里!但是我现在做的这个查询不是在数据库中!而是去查一个vector,vector中存放着一个数据类。这个数据类有好多属性!我要根据用户的输入(有可能有"*","?")去匹配vector中每个数据类的每个属性!如果符合,然后对这个数据类进行操作!。java.util.regex.Pattern中好像没有合适的吧? String类中的方法拼一个你要的方法应该没问题 问题解决了!!!感谢各位还是用了 java.util.regex.Pattern private boolean isLike (String strBase,String strLike ) { boolean bLike = true ; strLike.replace( '?', '.' ) ; if ( strLike.indexOf( '*' ) > -1 ) { strLike = strLike.substring(0 , strLike.indexOf( '*' )) + ".*" +strLike.substring( strLike.indexOf( '*' ) + 1); } return Pattern.matches( strLike , strBase ) ; } public boolean isLike(int iCompare) { return isLike(String.valueOf(iBase)); } 把用户的输入解析成正则表达式,然后用这正则表达式对vector中的数据进行匹配,匹配成功的数据输出。前提是用户的输入不算太复杂,呵呵 刚刚发错了 private boolean isLike( String strBase ) { boolean bLike = true ; String strLike = j_txtSearch.getText() ; strLike.replace( '?', '.' ) ; if ( strLike.indexOf( '*' ) > -1 ) { strLike = strLike.substring(0 , strLike.indexOf( '*' )) + ".*" +strLike.substring( strLike.indexOf( '*' ) + 1); } return Pattern.matches( strLike , strBase ) ; } private boolean isLike( int iBase ) { return isLike(String.valueOf(iBase)); } 建议你用LUCENE实现对应的检索可以通过中间过程匹配实现 jdk1.4 提供了正则表达式api.具体可参考java.util.regex包 java 构造器的疑问! 数据结构初学者,有几道比较难的题目求教! web系统的 冷备 这样的类如何设计 java图形界面中的一个问题 能否将一个变量值转换成一个对象名 关于JInternalFrame的一个小问题,应该不难,大家都进来看看呀 紧急求助:请问如何解决JAVA socket通信时的connettion reset问题 谁有Core J2EE Patterns: Best Practices and Design Strategies 这本书的下载地址? 怎么分别显示浮点数的整数部分和小书部分? 寻求根据数据库结构自动生成JavaBean代码的工具 新手入门问题
str.indexOf("20")>-1会告诉你like '%20%'的结果
str.lastIndexOf("20")==(str.length()-2)会告诉你 like '%20'的结果
最后一个str.length-2的2为20的字符串长度更复杂的你可以自己组合一下考虑.indexOf和lastIndexOf很有用的哦:)
其它的组合和这个类试
但是我现在做的这个查询不是在数据库中!而是去查一个vector,vector中存放着一个数据类。
这个数据类有好多属性!
我要根据用户的输入(有可能有"*","?")去匹配vector中每个数据类的每个属性!
如果符合,然后对这个数据类进行操作!。
java.util.regex.Pattern中好像没有合适的吧?
感谢各位
还是用了 java.util.regex.Pattern private boolean isLike (String strBase,String strLike ) {
boolean bLike = true ;
strLike.replace( '?', '.' ) ;
if ( strLike.indexOf( '*' ) > -1 )
{
strLike = strLike.substring(0 , strLike.indexOf( '*' )) +
".*" +strLike.substring( strLike.indexOf( '*' ) + 1);
}
return Pattern.matches( strLike , strBase ) ;
} public boolean isLike(int iCompare)
{
return isLike(String.valueOf(iBase));
}
private boolean isLike( String strBase ) {
boolean bLike = true ;
String strLike = j_txtSearch.getText() ;
strLike.replace( '?', '.' ) ;
if ( strLike.indexOf( '*' ) > -1 )
{
strLike = strLike.substring(0 , strLike.indexOf( '*' )) +
".*" +strLike.substring( strLike.indexOf( '*' ) + 1);
}
return Pattern.matches( strLike , strBase ) ;
} private boolean isLike( int iBase ) {
return isLike(String.valueOf(iBase));
}
可以通过中间过程匹配实现
java.util.regex包