2
假设我想查找后面子字符串的总次数。查找子字符串的总次数
与1后跟任意(0或更多)数量的0的启动,然后接着1.
我形成为它正则表达式的任何字符串:1[0]*1
然后我使用的Pattern
和Matcher
java类做剩下的工作。
import java.util.regex.*;
class P_m
{
public static void main(String []args)
{
int s=0;
Pattern p=Pattern.compile("1[0]*1");
Matcher matcher=p.matcher("1000010101");
while(matcher.find())
++s;
System.out.println(s);
}
}
但问题是,当我们有两个连续的子串重叠时,上面的代码输出答案1少于实际发生次数。例如,在上面的代码输出是2,而它应该是3.我可以修改上述代码返回正确的输出。