String sTemp=String1.substring(0,String1.indexOf("A2"));
if(sTemp.indexOf("A1")>-1){
//A1出现在第一次A2出现之前
}else{
//A1没有出现在第一次A2出现之前
}
if(sTemp.indexOf("A1")>-1){
//A1出现在第一次A2出现之前
}else{
//A1没有出现在第一次A2出现之前
}
解决方案 »
- 建立Java Project访问远程Web Service的步骤是什么啊
- StylePad熟悉的或者JAVA高手请进
- JComponent中的一个特殊方法update()
- 在做数据输入输出流的实验时,怎样调用循环和中断键盘输入操作?
- 程序打包后画面刷新慢。。。性能问题??
- 最近用网格袋布局,仿WINXP做一个计算器,出了一点问题,不知那个7怎么会跑上去!请各位指点!!
- 搜索端口出现异常并无法继续
- Sun One Appserver提问
- 怎么访问JAR包下的文件,路径?
- 一个线程的小题目怎么做
- 怎样让IE的JVM支持高版本的JDK
- 怎么样改变JButton按钮的大小,把AbstractButton50多个函数都找遍了……
能匹配就说明A2之前出现了A1
方法虽然是可以的,但由于这只是一部分的需求,所以还需要把它结合入正则表达式。pankun(剑神一笑 如履薄冰)
试着用.*A1.*A2.*来解析,
String1="abcde A1 fg A2"
String2="ab A2 cde A1 fg A2"
出来都是True -- 因为String2中第2个A2前确实有A1。可我希望得到的判断是
字符串的 第 一 个 A2 前是否有A1出现。
String s2="ab A2 cde A1 fg A2";
String regExceptA2="(([^A]*)|(([^A]*A[^2])*))";
String reg=regExceptA2+"A1"+regExceptA2+"A2"+".*";
Pattern p=Pattern.compile(reg);
Matcher m;
m=p.matcher(s1);
System.out.println(m.matches());
m=p.matcher(s2);
System.out.println(m.matches());
A1=A1[^1]*1
A2=A2[^2]*2
那该如何判断?
检查字符串是否出现 和before和after匹配的子串,
而且before匹配的子串在第一个after匹配子串前出现.
overlapped说明两个子串是否可以重叠.
str: 要匹配的字符串
before: 正则表达式
after: 正则表达式
overlapped:是否可以重叠
*/
static boolean pattern(String str,String before,String after,boolean overlapped){
Pattern p1=Pattern.compile(before);
Pattern p2=Pattern.compile(after);
Matcher m1=p1.matcher(str);
Matcher m2=p2.matcher(str);
if(overlapped) return(m1.find()&&m2.find()&&m1.start()<=m2.start());
else return(m1.find()&&m2.find()&&m1.end()<m2.start());
}
http://www.ccw.com.cn/htm/app/aprog/01_7_31_4.asp
treeroot(根根) ,另开贴给分!
http://community.csdn.net/Expert/TopicView.asp?id=3627930
接分:)