用String 类的 indexOf() 方法来判断。应该可以。
解决方案 »
- java写的windows任务管理器
- 请教linux下使用svn命令的几个问题
- google app engine 数据操作的问题
- 哪位有兴趣帮俺做个RFID方面的 demo,我可以提供交换,如arm开发项目 呵呵
- 为什么这个程序会提示没有声明类?
- 我想写一个 ElGamal 加密算法的小程序..遇到困难和疑惑..大家帮帮忙
- 用java写excel的问题:如何改变excel单元格的背景颜色?
- ****100分 求struts国际化例子!多谢了****
- JAVA和UML、数据结构的关系是什么?
- vC中的listBox在java中是哪个控件??
- 什么是静态初始化?
- oracle数据库备份急???????????
或者到apache上找regexp,也是个支持正则表达式的包
前提你要明白正则表达试
先把字符串中‘*’换成"\\S*","?"换成"\\S?",然后用jdk1.4的String类的match函数。
等着痛苦吧,你会发现无穷无尽的bug,bug,bug...
java.util.StringTokenizer t = new java.util.StringTokenizer(pattern,"?");
String part;
boolean valid=true;
int pos=0;
while (t.hasMoreTokens()){
part=t.nextToken();
System.out.println(part);
pos=Data.indexOf(part,pos);
if (pos < 0){
valid=false;
break;
}else{
pos+=part.length();
}
}
return valid;
}
java.util.StringTokenizer t = new java.util.StringTokenizer(pattern,"%");
String part;
boolean valid=true;
int pos=0;
int nextpos=0;
String subPart;
java.util.StringTokenizer t1;
while (t.hasMoreTokens()){
part=t.nextToken();
t1=new java.util.StringTokenizer(part,"?");
//第一个子串
if(t1.hasMoreTokens()){
subPart=t1.nextToken();
nextpos=Data.indexOf(subPart,pos);
//判定前面有几个连续的?
if ((nextpos-pos)<part.indexOf(subPart)){
valid=false;
break;
}else{
pos=nextpos-part.indexOf(subPart);
}
}
//
int fromPos=0;
int toPos=0;
while(true){
toPos=part.indexOf("?",fromPos);
if (toPos<0){
toPos=part.length();
}
if (Data.length()<pos+(toPos-fromPos)){
valid=false;
break;
}
if (!part.substring(fromPos,toPos).
equals(Data.substring(pos,pos+(toPos-fromPos)))){
valid=false;
break;
}
if (toPos==part.length()){
pos=pos+toPos-fromPos;
break;
}else{
pos=pos+toPos-fromPos+1;
fromPos=toPos+1;
}
} //
if (!valid)
break;
}
return valid;
}