现在我要分解一个包含"H"的字符串,但如果字符串里包含"HH"的时候,不分解例:WHN = [W][][N]
   WHHN = [W][HH][N]
   WHHHN = [W][HHH][N]
   HWN = [][W][N]急~~

解决方案 »

  1.   

    修正一下:
       WHN = [W][N]
       WHHN = [W][HH][N]
       WHHHN = [W][HHH][N]
       HWN = [W][N]
      

  2.   

    WHHN = [W][HH][N]
    WHHHN = [W][HHH][N]
    HWN = [][W][N]
    这里面H都不算分隔符。没分隔符怎么分,你把他们都当成的是子串了。
    除非先用正则先匹配下。
    我水平低 分不来。看看有没有高手来了。
    ~
      

  3.   

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class A{
        public static void main(String[] args){
         String[] str={"WHN","WHHN","WHHHN","WHHHHN","HWWWWWN"};
         StringBuffer strBuf=new StringBuffer();
         for(String st:str){
                 Matcher m=Pattern.compile("([\\S&&[^H]]+)|(H{2,})|(H)").matcher(st);
              while(m.find()){    
              if(m.group(1)!=null)
                 strBuf.append("["+m.group(1)+"]");
              if(m.group(2)!=null)
                 strBuf.append("["+m.group(2)+"]");
              }
                 strBuf.append("\n");
       }
       System.out.println(strBuf.toString());
        }
    }
    写好了 你试试  不知道符合不符合你的实际要求~
    今天脑子比较清楚。呵呵^_^