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出现之前
}
解决方案 »
- 方法的返回类型不同,算不算重载
- 找不到符号???
- jar文件执行出错问题
- 关于反射 -- Method 类的 setAccessible 方法的作用
- ibatis问题
- 求助new A().func(new A.());这个程序哪里错了?要怎么改啊?
- 数据库中datetime型数据运算和java.util.date与java.sql.date类型转化问题 在线等!!!!
- 我在一本书上看到,cloneable是java的(误)拼写,那么符合英文规则的拼法应该怎样呢?
- 英文好的请进~
- kawa不支持中文吗?在编辑区中文怎么也打不上,请救急!
- 怎样让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
接分:)