투케이2K

329. (kotlin/코틀린) [유틸 파일] : getSubStringArray : String Array 배열 부분 데이터 반환 수행 본문

Kotlin

329. (kotlin/코틀린) [유틸 파일] : getSubStringArray : String Array 배열 부분 데이터 반환 수행

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

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

        // -----------------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [RETURN] getSubStringArray : String Array 배열 부분 데이터 반환 수행
        // -----------------------------------------------------------------------------------------
        fun getSubStringArray(array: Array<String>?, start: Int, end: Int): Array<String>? {

            /**
             * // -----------------------------------------
             * [getSubStringArray 메소드 설명]
             * // -----------------------------------------
             * 1. String Array 배열 부분 데이터 반환 수행
             * // -----------------------------------------
             * 2. 호출 방식 :
             *
             * var array = Array<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]
             * // -----------------------------------------
             */


            // [리턴 변수 선언]
            var returnData: Array<String>? = null
            var M_LOG = ""


            // [로직 처리 실시]
            try {
                if (array != null && array.size > 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 크기 비교]

                            val parsingList: ArrayList<String> = ArrayList<String>(Arrays.asList(*array))
                            val subList: ArrayList<String> = ArrayList<String>()

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

                                for (i in parsingList.indices) {
                                    try {
                                        if (i >= start) {
                                            subList.add(parsingList[i])
                                        }
                                    } catch (e: Exception) {
                                    }
                                }

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

                                for (i in parsingList.indices) {
                                    try {
                                        if (i >= start && i <= end) {
                                            subList.add(parsingList[i])
                                        }
                                    } catch (e: java.lang.Exception) {
                                    }
                                }

                            }


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

                                returnData = Array<String>(subList.size, {""})

                                for (i in subList.indices) {
                                    try {
                                        returnData[i] = subList[i].toString()
                                    } catch (e: Exception) {
                                    }
                                }

                            }

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

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

            } catch (e: Exception) {
                e.printStackTrace()
                M_LOG = "[EXCEPTION] : " + e.message.toString()
            }


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


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

[결과 출력]

 

D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.kotlinproject.C_Util$Companion.getSubStringArray(C_Util.kt:5477)]
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