当前位置: 代码迷 >> Java相关 >> 拆分一个字符串,以大写字母作为标识,该怎么处理
  详细解决方案

拆分一个字符串,以大写字母作为标识,该怎么处理

热度:5475   发布时间:2013-02-25 21:45:48.0
拆分一个字符串,以大写字母作为标识
比如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());         }}