투케이2K

224. (swift/xcode) [유틸 파일] getStringArrayContainsWord - String 배열에 단어 포함 여부 확인 본문

Swift

224. (swift/xcode) [유틸 파일] getStringArrayContainsWord - String 배열에 단어 포함 여부 확인

투케이2K 2026. 7. 19. 10:44
728x90
반응형

[개발 환경 설정]

개발 툴 : Mac OS / Xcode

개발 언어 : Swift5 / 스위프트

 

[소스 코드]

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

- 언어 : Swift5


- 개발 툴 : Xcode


- 구분 : 유틸 파일 / getStringArrayContainsWord / String 배열에 단어 포함 여부 확인


- 사전) 👉 유틸 파일 간략 설명 : 

  >> 프로그램에서 유틸(Util, Utility) 파일은 여러 곳에서 공통으로 사용하는 기능을 모아둔 파일을 의미합니다. 
  
    - 쉽게 말해 "재사용 가능한 도구 모음" 입니다.

  >> 유틸 파일 사용 이유 : 

    - 동일한 코드를 여러 파일에 반복 작성하면 코드 중복이 발생, 유지보수가 어려움, 버그 수정 시 여러 곳을 수정해야 하는 문제가 발생합니다.

    - 그래서 자주 사용하는 기능을 유틸 파일로 분리합니다.

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






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
class CUtil {

    // -------------------------------------------------------------
    // TODO [호출 방법]
    // -------------------------------------------------------------
    /*
    let result1 = CUtil.getStringArrayContainsWord(
        word: "twok 입니다.",
        array: ["hello", "twok"],
        condition: "and"
    )

    print(result1) // false
    */
    // -------------------------------------------------------------


    // -------------------------------------------------------------
    // TODO [SEARCH FAST] : String 배열 포함 여부 확인
    // -------------------------------------------------------------
    static func getStringArrayContainsWord(word: String?, array: [String]?, condition: String) -> Bool {

        // [리턴 변수]
        var returnData = false

        do {

            // 문자열 체크
            guard let word = word,
                  !word.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty else {
                return returnData
            }

            // 배열 체크
            guard let array = array,
                  !array.isEmpty else {
                return returnData
            }

            // 조건 체크
            guard condition == "and" || condition == "or" else {
                return returnData
            }

            var containsCheck = (condition == "and")

            for item in array {

                if condition == "and" {

                    if !word.contains(item) {
                        containsCheck = false
                        break
                    }

                } else {

                    if word.contains(item) {
                        containsCheck = true
                        break
                    } else {
                        containsCheck = false
                    }

                }
            }

            returnData = containsCheck

        }

        return returnData
    }
}

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






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

▶️ 222. (swift/xcode) [유틸 파일] getMacFormat - 맥 주소 (Mac Address) 형식에 맞게 세미콜론 자릿수 포맷 함수

https://kkh0977.tistory.com/8750

https://blog.naver.com/kkh0977/224243028554


▶️ 221. (swift/xcode) [유틸 파일] getCallNumFormat - 휴대폰 번호 및 지역 전화 번호 형식 문자열 포맷 함수

https://kkh0977.tistory.com/8747

https://blog.naver.com/kkh0977/224241493424


▶️ 220. (swift/xcode) [유틸 파일] getRandomString - 안정적 아스키 문자 사용해 입력 된 길이 만큼 랜덤 문자열 생성

https://kkh0977.tistory.com/8539

https://blog.naver.com/kkh0977/224130561813


▶️ 219. (swift/xcode) [유틸 파일] getDateCalTimeStamp : 현재 날짜 및 시간에서 특정 시간 더하기 및 빼기 수행 한 타임스탬프 값 반환

https://kkh0977.tistory.com/7890

https://blog.naver.com/kkh0977/223822801563


▶️ 215. (swift/xcode) [유틸 파일] getJsonKeyContains : JSON KEY 포함 확인 실시 - json to dictionary

https://kkh0977.tistory.com/7190

https://blog.naver.com/kkh0977/223624389262

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



728x90
반응형
Comments