세트의 스트링 섹션의 시작과 끝의 캐릭터 섹션을 감안할 때, 다음 문자열 차단의 구성을 결정하는 다른 문자열을 차단하는 데 사용할, 시작 및 문자열 문자열의 끝이 와일드 카드를 지원 필요 (단 하나의 별표 (*)는 모든 문자를 나타냅니다 지원 그리고 문자열의 중간에 별표 (*) 만 해당)

패키지 빌더; 


수입 인 java.util.ArrayList;
수입 은 java.util.List; 

공용  클래스 테스트 {
     공공  정적  무효 메인 (문자열 []에 args) {
         // 下面期望输出[jgajgaagi; aghuhagajagg; g, ga23ty1] 
        문자열 STR = "agaggaga <A; agpjgajgaagi; aghuhagajagg; gakagkogagpga23ty1ak1hg" ; 
        문자열 개방 = "는 * GP" ; 
        문자열 가까이 = "AK" ; 

      
        // 下面期望输出[AG, PJ, I; aghuha, g; 코] 
        문자열 STR2 = "agaggaga <A; agpjgajgaagi; aghuhagajagg; gakagkogaga23ty11hg" ; 
        문자열 open2 = "AG"
        문자열 close2 = "조지아" ; 


        목록 <문자열> midList = getMidList (캐릭터, 열기, 닫기); 
        목록 <문자열> midList2 = getMidList (STR2, open2, close2); 

        에서 System.out.println (midList); 
        에서 System.out.println (midList2); 

    } 

    공공  정적 목록 <문자열> getMidList (문자열 str을 오픈 문자열, 문자열 닫기) { 
        목록 <문자열> retList = 새로운 ArrayList를 <> (); // 存储结果
        경우 (isEmpyty (STR) || isEmpyty) (오픈 || isEmpyty이 (닫기)) {
             반환 retList을; 
        } 

        목록<문자열> = openList 에는 getString (STR 오픈); 
        목록 <문자열> closeList = 에는 getString (STR, 닫기);
        만약 (! openList.isEmpty () && closeList.isEmpty ()) { 
            문자열 온도 = 널 (null) ; 
            외부 : 
            (문자열 사전 : openList) {
                 위한 (서브 스트링 : closeList) {
                     INT I = str.indexOf (프리);
                    경우 (I == -1 ) {
                         계속 외측; 
                    } 
                    I = I + ) (pre.length 단계;
                    STR = str.substring (I); // 去掉头
                    INT DD = str.indexOf (부);
                    경우 (이 DD == -1 ) {
                         계속 ; 
                    } 
                    온도 = STR; 
                    retList.add (str.substring ( 0 , DD)); 
                    STR = temp.substring (DD + sub.length ());
                    휴식 외부; 
                } 

            } 
        } 
            동안 ( 사실 ) {
                 경우 ( 널 (null) == str을 || retList.isEmpty ()) {
                     휴식 ; 
                } 
                openList = 에는 getString (STR 오픈); 
                closeList = 에는 getString (STR 근접);
                경우 (openList.isEmpty () || closeList.isEmpty는 ()) {
                     휴식 ; 
                } 
                문자열 TEMP2 = 널 (null) ; 
                외부 : 위해 {(openList 문자열 사전)
                     에 대한 (서브 스트링 : closeList) {
                         int로 I =str.indexOf (프리);
                        경우 (I == - 1 ) {
                             계속 외측; 
                        }  = 난 + ) (pre.length 단계; 
                        STR = str.substring (I); // 去掉头
                        INT DD = str.indexOf (부);
                        경우 (DD의 == 것은 - 1 ) {
                             계속 ; 
                        } 
                        TEMP2 = STR; 
                        retList.add (str.substring ( 0 , DD)); 
                        STR = temp2.substring (DD + sub.length ());
                    } 

                } 

            } 

            반환 retList을; 

    } 












    공공  정적   부울 isEmpyty (문자열 STR) {
         경우 ( 널 (null) . == str을 || STR == ""|| str.trim () 길이 () == 0 ) {
             반환  사실 ; 
        } 
        반환  거짓 ; 
    } 


    공용  정적 리스트 <문자열> 에는 getString (문자열 str을 문자열 오픈) { 
        문자열 [] 스플릿 = open.split ( "\\ *" ); 
        목록 <문자열> 목록 = 새로운 ArrayList를 <>만약();
        (split.length == 1 ) { 
            문자열 사전 = 분할 [0 ];
            만약 - (! 1 str.indexOf) (프리 = {) 
                ]에는 list.add (프리) 
            } 
            반환 목록; 
        } 
        경우 (split.length> = 3 ) {
             복귀 리스트; 
        } 
        문자열 S1 = 분할 [0 ]; 
        문자열 S2 = 분할 [1 ]; 
        문자열 온도 = 널 (null) ;
        반면 ( ) {
             int로 난을 = str.indexOf (S1);
            만약(I ==은 - 1 ) {
                 중단 ; 
            } 
            INT의 I2 = str.indexOf (S2);
            경우 (I2의하면 == - 1 ) {
                 중단 ; 
            } 
            온도 = STR; 
            에는 list.add (str.substring (I, I2 + s2.length ())); 
            STR = temp.substring (I2 + s2.length ()); 
        } 

        반환 목록; 
    } 





}

 

추천

출처www.cnblogs.com/yangxiaohui227/p/11344806.html