투케이2K

335. (java/자바) [유틸 파일] : getSubStringArray : String Array 배열 부분 데이터 반환 수행 본문

Java

335. (java/자바) [유틸 파일] : getSubStringArray : String Array 배열 부분 데이터 반환 수행

투케이2K 2023. 7. 1. 12:08

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [RETURN] getSubStringArray : String Array 배열 부분 데이터 반환 수행
    // -----------------------------------------------------------------------------------------
    public static String[] getSubStringArray(String []array, int start, int end){

        /**
         * // -----------------------------------------
         * [getSubStringArray 메소드 설명]
         * // -----------------------------------------
         * 1. String Array 배열 부분 데이터 반환 수행
         * // -----------------------------------------
         * 2. 호출 방식 :
         *
         * String[] array = new String[6];
         * array[0] = "0"; // [0]
         * array[1] = "1"; // [1]
         * array[2] = "2"; // [2]
         * array[3] = "3"; // [3]
         * array[4] = "4"; // [4]
         * array[5] = "5"; // [5]
         *
         * C_Util.getSubStringArray(array, 1, 3); // [1부터 3까지 반환]
         *
         * // -----------------------------------------
         * 3. 리턴 데이터 :
         *
         * [1, 2, 3]
         * // -----------------------------------------
         * */


        // [리턴 변수 선언]
        String [] returnData = null;
        String M_LOG = "";


        // [로직 처리 실시]
        try {

            if (array != null && array.length>0){

                if (start < 0 || end < 0){ // [음수 값 체크]
                    M_LOG = "[ERROR] : Range Check Error (start or end < 0)";
                }
                else {

                    M_LOG = "SUCCESS : Array Sub Data";

                    if (end >= start){ // [end >= start 크기 비교]

                        ArrayList parsingList = new ArrayList(Arrays.asList(array));
                        ArrayList subList = new ArrayList();

                        if (end >= (parsingList.size()-1)){ // [end >= list size 크기 비교 / 배열 사이즈 보다 거나 같은 경우]

                            for (int i=0; i<parsingList.size(); i++){

                                try {
                                    if (i >= start){
                                        subList.add(parsingList.get(i));
                                    }
                                }
                                catch (Exception e){}

                            }

                        }
                        else { // [배열 사이즈 보다 작은 경우]

                            for (int i=0; i<parsingList.size(); i++){

                                try {
                                    if (i >= start && i <= end){
                                        subList.add(parsingList.get(i));
                                    }
                                }
                                catch (Exception e){}

                            }

                        }
                        
                        
                        // [ArrayList To Array 변환 수행]
                        if (subList != null && subList.size()>0 && subList.isEmpty() == false){

                            returnData = new String[subList.size()];

                            for(int i=0; i<subList.size(); i++){

                                try { returnData[i] = String.valueOf(subList.get(i)); } catch (Exception e){}

                            }
                        }

                    }
                    else {
                        M_LOG = "[ERROR] : Range Check Error (end >= start / false)";
                    }

                }

            }
            else {
                M_LOG = "[ERROR] : Input Array Is Null";
            }

        }
        catch (Exception e){
            e.printStackTrace();
            M_LOG = "[EXCEPTION] : " + String.valueOf(e.getMessage());
        }


        // [로그 출력 실시]
        try {
            //*
            // ===============================================================
            S_Log._D_("String Array 배열 부분 데이터 반환 수행", new String[]{
                    "INPUT [ARRAY] :: " + String.valueOf(Arrays.toString(array)),
                    "INPUT [RANGE] :: " + String.valueOf(start) + " ~ " + String.valueOf(end),
                    "M_LOG :: " + String.valueOf(M_LOG),
                    "RETURN :: " + String.valueOf(Arrays.toString(returnData))
            });
            // ===============================================================
            // */
        }
        catch (Exception e){}


        // [리턴 반환 실시]
        return returnData;
    }
 

[결과 출력]

 

D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.C_Util.getSubStringArray(C_Util.java:5878)]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: String Array 배열 부분 데이터 반환 수행]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [ARRAY] :: [0, 1, 2, 3, 4, 5]]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [RANGE] :: 1 ~ 3]
I/: ----------------------------------------------------
I/: [LOG :: M_LOG :: SUCCESS : Array Sub Data]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: [1, 2, 3]]
D///===========//: ================================================

 


 

반응형
Comments