투케이2K

133. (kotlin/코틀린) [유틸 파일] matchString : 정규식 수행 메소드 [공백 및 특수문자 제거] 본문

Kotlin

133. (kotlin/코틀린) [유틸 파일] matchString : 정규식 수행 메소드 [공백 및 특수문자 제거]

투케이2K 2022. 12. 26. 21:01

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

        // TODO [SEARCH FAST] : [RETURN] matchString : 정규식 수행 메소드 [공백 및 특수문자 제거]
        fun matchString(value: String): String {

            /**
             * // -----------------------------------------
             * [matchString 메소드 설명]
             * // -----------------------------------------
             * 1. 정규식 수행 메소드 [공백 및 특수문자 제거]
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.matchString("hello@@TwoK")
             * // -----------------------------------------
             * 3. 리턴 데이터 : 공백 및 특수문자 제거 데이터 반환
             * // -----------------------------------------
             */

            /**
             * // -----------------------------------------
             * [요약 설명]
             * // -----------------------------------------
             * 1. 정규식 패턴 ^[a-z] : 영어 소문자 허용
             * // -----------------------------------------
             * 2. 정규식 패턴 ^[A-Z] : 영어 대문자 허용
             * // -----------------------------------------
             * 3. 정규식 패턴 ^[ㄱ-ㅎㅏ-ㅣ가-힣] : 한글 허용
             * // -----------------------------------------
             * 4. 정규식 패턴 ^[ㄱ-ㅎㅏ-ㅣ가-힣] : 숫자 허용
             * // -----------------------------------------
             * 5. 정규식 패턴 ^[ ] or ^[\\s] : 공백 허용
             * // -----------------------------------------
             */


            // [결과를 반환할 변수 선언 실시]
            var result = ""


            // [정규식 패턴 형식 정의]
            val pattern = Regex("^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]") // 정규식 : 한글, 영어, 숫자만 허용 (공백, 특수문자 제거)
            //val pattern = Regex("^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9\\s]"); // 정규식 : 한글, 영어, 숫자, 공백만 허용 (특수문자 제거)


            // [로직 처리 실시]
            try {
                if (C_Util.stringNotNull(value) == true) { // 문자열 길이가 1개 이상인 경우

                    // for 반복문을 선언해서 문자 한글자씩 확인 실시
                    for (i in 0 .. value.length-1 step(1)) {

                        result += if (value[i].toString().matches(pattern)) { // 정규식 패턴을 만족하는 경우
                            value[i] // 문자열 추가
                        }
                        else { // 정규식 패턴이 아닌 경우
                            continue
                        }
                    }

                }
                else { // 문자열 길이가 0개인 경우
                    result = value // 인풋값 그대로 반환
                }
            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            ///*
            Log.i("---","---")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> matchString() :: 정규식 수행 메소드 [공백 및 특수문자 제거]]")
            Log.i("","\n"+"--------------------------------")
            Log.i("","\n"+"[INPUT :: "+value+"]")
            Log.i("","\n"+"--------------------------------")
            Log.i("","\n"+"[Regex :: "+pattern.toString()+"]")
            Log.i("","\n"+"--------------------------------")
            Log.i("","\n"+"[RETURN :: "+result+"]")
            Log.d("//===========//","================================================")
            Log.i("---","---")
            // */


            // 결과 반환 실시
            return result
        }
 

[결과 출력]


반응형
Comments