日期:2014-05-20  浏览次数:20738 次

拆分一个字符串,以大写字母作为标识
比如accpHelloWorldHH
拆为accp Hello World H H

------解决方案--------------------
Java code

public static void main(String[] args) {
        String s = "accpHelloWorldHH";
        String[] ss = s.split("(?=[A-Z])");
        for(int i = 0 ;i < ss.length; i ++){
            System.out.println(ss[i]);
        }
    }

------解决方案--------------------
我把 1 楼的代改进了一下,仅供参考:

Java code
public class RegexTest {

    public static void main(String[] args) {
        String s = "AAccpHelloWorldHH";
        String[] ss = s.split("(?<!^)(?=[A-Z])");
        for(int i = 0 ;i < ss.length; i ++){
            System.out.println(ss[i]);
        }
    }
}

------解决方案--------------------
我不会正则表达式,所以就写了一个不用正则的,你可以看看。我也是菜鸟,向各位高手学习正则的写法
Java code

public class StringSplit {
    public static void main(String[] args) {
          String s = "accpHelloWorldHH";
          char[] c=s.toCharArray();
          int i=0;      
          StringBuilder sb = new StringBuilder();
          while(i<s.length()){
              while(i<s.length()&&c[i]>'Z') {
                  sb.append(c[i]);
                  i++;
              }
              System.out.print(sb.toString()+" ");
              if(i<s.length()){
                  sb = new StringBuilder();
                  sb.append(c[i++]);
              }
             
          }
          System.out.println(sb.toString());     
    }
}