투케이2K

542. (kotlin/코틀린) [유틸 파일] stringSuperContains : String 문자열 대소문자 및 공백 구분 없이 문자열 포함 확인 실시 본문

Kotlin

542. (kotlin/코틀린) [유틸 파일] stringSuperContains : String 문자열 대소문자 및 공백 구분 없이 문자열 포함 확인 실시

투케이2K 2025. 2. 1. 10:17

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java

- 개발 툴 : AndroidStudio

- 구분 : 유틸 파일

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

fun stringSuperContains(origin: String, search: String): Boolean {

    /**
      * // -----------------------------------------
      * [stringSuperContains 메소드 설명]
      * // -----------------------------------------
      * 1. String 문자열 대소문자 및 공백 구분 없이 문자열 포함 확인 실시 : true / false
      * // -----------------------------------------
      * 2. 호출 방식 :
      *
      * C_Util.stringSuperContains("twok,투케이,반갑습니다", "TWOK") // true
      * C_Util.stringSuperContains("twok,투케이,반갑습니다", "two k") // true
      * C_Util.stringSuperContains("twok,투케이,반갑습니다", "2k") // false
      * C_Util.stringSuperContains("twok,투케이,반갑습니다", "투케이2k") // false
      * // -----------------------------------------
      * 3. 리턴 데이터 : 문자열 대소문자 및 공백 구분 없이 문자열 포함 하는 경우 true / 아닌 경우 false
      * // -----------------------------------------
      */


    // [리턴 변수 선언]
    var returnData = false
    var M_LOG = ""


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

        if (stringNotNull(origin) == true) { // [널이 아닌 경우]

            // [1] : 원본 문자열 그대로 포함 여부 확인
            if (origin.contains(search) == true) {
                M_LOG = "[SUCCESS] : STEP [1] SEARCH : ORIGIN CONTAINS"
                returnData = true
            }


            // [2] : 문자열 공백 제거 포함 여부 확인
            var removeNullOrigin = origin.replace(" ".toRegex(), "")
            var removeNullSearch = search.replace(" ".toRegex(), "")

            if (returnData == false) {
                if (removeNullOrigin.contains(removeNullSearch) == true) {
                    M_LOG = "[SUCCESS] : STEP [2] SEARCH : REPLACE CONTAINS"
                    returnData = true
                }
            }


            // [3] : 대소문자 구분 없이 포함 여부 확인
            if (returnData == false) {
                removeNullOrigin = removeNullOrigin.lowercase(Locale.getDefault())
                removeNullSearch = removeNullSearch.lowercase(Locale.getDefault())
                if (removeNullOrigin.contains(removeNullSearch) == true) {
                    M_LOG = "[SUCCESS] : STEP [3] SEARCH : LOWER CASE CONTAINS"
                    returnData = true
                }
            }


            // [최종 로그 값 확인]
            if (returnData == false) {
                M_LOG = "[FAIL] : STEP SEARCH CONTAINS FALSE"
            }

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

    } catch (e: Exception) {
        S_Log._printStackTrace_(null, S_FinalData.LOG_BUG_STATE, null, e)
        M_LOG = "[EXCEPTION] : " + e.message.toString()
    }


    // [로그 출력 실시]
    //*
    // ===============================================================
    S_Log._D_("String 문자열 대소문자 및 공백 구분 없이 문자열 포함 확인 실시", arrayOf(
        "INPUT [Origin] :: $origin",
        "INPUT [Search] :: $search",
        "M_LOG :: $M_LOG",
        "RETURN :: $returnData"
    ))
    // ===============================================================
    // */


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

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[결과 출력]
// --------------------------------------------------------------------------------------

===================================================================
[LOG :: CLASS PLACE :: C_Util.stringSuperContains]
----------------------------------------------------
[LOG :: NOW TIME :: 2025-01-27 12:44:05 월요일]
----------------------------------------------------
[LOG :: DESCRIPTION :: String 문자열 대소문자 및 공백 구분 없이 문자열 포함 확인 실시]
----------------------------------------------------
[LOG :: INPUT [Origin] :: twok,투케이,반갑습니다]
----------------------------------------------------
[LOG :: INPUT [Search] :: TWOK]
----------------------------------------------------
[LOG :: M_LOG :: [SUCCESS] : STEP [3] SEARCH : LOWER CASE CONTAINS]
----------------------------------------------------
[LOG :: RETURN :: true]
===================================================================

// --------------------------------------------------------------------------------------

 

반응형
Comments