找出一个字符串中由同一个字符组成的最长子串
这是在百度知道中看到的一个问题,感觉有点意思,就拿来练练手
思路也简单:
1.定义给个中间变量
2.用正则匹配有连续的字符
3.如果匹配的字符比中间变量长就换掉中间变量
4.在上次匹配处继续循环匹配
5.如果连续的字符都是一样长就选择最前面的
以下为实现代码
String str = "http://www.flickr.com/photos/chaddles/21111402990826/";
String longest="";
String eg="((.)\\2*)";
Matcher m = Pattern.compile(eg, Pattern.CASE_INSENSITIVE).matcher(str);
System.out.println("begin...");
String each="";
while (m.find()) {
each=m.group(1);
if(each.length()>longest.length())longest = each;
}
System.out.println("longest="+longest);
System.out.println("end!");