public static String maxLength(String s){
    String rs = "";
    Pattern p = Pattern.compile("([a-z|A-Z])\\1+");
    Matcher m = p.matcher(s);
    while (m.find()){
        rs = rs.length() >= m.group().length() ? rs :m.group();
    }
    if(rs.length()>1){
        return rs.substring(0,1)+","+rs.length();
    }else{
        return "GOD";
    }
}正则表达式("([a-z|A-Z])\\1+");是什么意思啊,我看了API后也不懂啊,可以说一下这个程序的意思吗?
if(rs.length()>1){
        return rs.substring(0,1)+","+rs.length();
这句话意思不懂啊

解决方案 »

  1.   

    那个正则是大小写字母,substring是子串
      

  2.   

    你还是没有好好看API吧,正则Pattern类说的很详细的。下面那句用的是String类得方法,你去查查,很好懂的。
      

  3.   

    这个程序应该是寻找连续重复最长的字母,并返回该字母以及重复的次数。
    假如为maxLength("aaaaaabbb"),则返回a,6.public static String maxLength(String s){
      String rs = "";
      Pattern p = Pattern.compile("([a-z|A-Z])\\1+");//连续重复的字母,如aaaaaa,bbb
      Matcher m = p.matcher(s);
      while (m.find()){//找到aaaaaa和bbb
         rs = rs.length() >= m.group().length() ? rs :m.group();//将最长的赋值给rs
      }
      if(rs.length()>1){//如果存在连续重复的字母
      return rs.substring(0,1)+","+rs.length();//取该字母并输出重复的次数。
      }else{
      return "GOD";
      }
      

  4.   

    "([a-z|A-Z])\\1+"匹配下标为1的组  这是关键