• Feed
  • Explore
  • Ranking
/
/
    🦅 Swift

    [Swift] 문자열(String) 관련 주요 함수 정리

    Swiftios
    지
    지성
    2025.02.27
    ·
    8 min read

    문자열 길이 및 확인 관련 함수

    문자열 길이 확인 (count)

    문자열의 글자 수 반환

    let text = "Swift"
    print(text.count) // 5

    배열처럼 isEmpty도 가능

    let text = "Swift"
    print(text.isEmpty) // false

    배열의 요소 개수 확인과 동일한 방식

    let array = ["A", "B", "C"]
    print(array.count) // 3

    문자열 검색 관련 함수

    특정 문자 포함 여부 (contains)

    문자열 내 특정 문자가 포함되어 있는지 확인

    let text = "Swift is awesome"
    print(text.contains("Swift")) // true
    print(text.contains("Java"))  // false

    대소문자 구분 주의 (caseInsensitiveCompare 사용 가능)

    let text = "Swift is awesome"
    print(text.lowercased().contains("swift")) // true

    접두사/접미사 확인 (hasPrefix(), hasSuffix())

    문자열이 특정 문자열로 시작하는지 확인

    let filename = "image.png"
    print(filename.hasPrefix("image")) // true

    문자열이 특정 문자열로 끝나는지 확인

    let filename = "image.png"
    print(filename.hasSuffix(".png")) // true

    문자열 찾기 (firstIndex(of:), range(of:))

    문자열에서 특정 문자의 첫 번째 위치 찾기

    let text = "Swift is awesome"
    if let index = text.firstIndex(of: "i") {
        print("i 위치: \(text.distance(from: text.startIndex, to: index))") // i 위치: 2
    }

    문자열에서 특정 문자열의 범위 찾기

    let text = "Swift is awesome"
    if let range = text.range(of: "awesome") {
        print("awesome 위치: \(text.distance(from: text.startIndex, to: range.lowerBound))")
    }

    문자열 변환 관련 함수

    대소문자 변환 (uppercased(), lowercased())

    문자열을 대문자로 변환

    let upper = "swift".uppercased()
    print(upper) // "SWIFT"

    문자열을 소문자로 변환

    let lower = "SWIFT".lowercased()
    print(lower) // "swift"

    앞뒤 공백 제거 (trimmingCharacters(in:))

    앞뒤 공백 제거 (중간 공백은 유지됨)

    let textWithSpaces = "  Hello, Swift!  "
    print(textWithSpaces.trimmingCharacters(in: .whitespaces)) // "Hello, Swift!"

    모든 공백 제거 (replacingOccurrences(of:) 활용)

    print(textWithSpaces.replacingOccurrences(of: " ", with: "")) // "Hello,Swift!"

    문자열 치환 (replacingOccurrences(of: with:))

    문자열 내 특정 문자열을 다른 문자열로 치환

    let sentence = "I love Python!"
    let newSentence = sentence.replacingOccurrences(of: "Python", with: "Swift")
    print(newSentence) // "I love Swift!"

    여러 개의 문자를 치환하려면 반복 사용 또는 reduce 활용

    let text = "apple,banana;cherry"
    let cleaned = text.replacingOccurrences(of: ",", with: " ")
                         .replacingOccurrences(of: ";", with: " ")
    print(cleaned) // "apple banana cherry"

    문자열 분할 & 결합 관련 함수

    문자열 분할 (split(separator:))

    문자열을 특정 문자 기준으로 나누기

    let words = "Swift is awesome".split(separator: " ")
    print(words) // ["Swift", "is", "awesome"]

    연속된 구분자를 무시 (빈 문자열 없음)

    let text = "Swift,,is,,awesome"
    print(text.split(separator: ",")) // ✅ ["Swift", "is", "awesome"]

    빈 문자열도 포함하려면 omittingEmptySubsequences: false 옵션 사용

    let text = "Swift,,is,,awesome"
    print(text.split(separator: ",", omittingEmptySubsequences: false)) 
    // ["Swift", "", "is", "", "awesome"]

    문자열을 여러 구분자로 분할 (components(separatedBy:))

    구분자로 문자열을 분할 (빈 문자열 포함됨)

    let words2 = "Swift,,is,,awesome".components(separatedBy: ",")
    print(words2) // ["Swift", "", "is", "", "awesome"]

    여러 개의 구분자로 나누려면 replacingOccurrences 후 split() 사용

    배열을 문자열로 결합 (joined(separator:))

    문자열 배열을 하나의 문자열로 변환

    let wordsArray = ["Swift", "is", "awesome"]
    let sentence = wordsArray.joined(separator: " ")
    print(sentence) // "Swift is awesome"

    문자열 포맷 관련 함수

    문자열 삽입 (appending())

    문자열을 추가하여 새로운 문자열 반환

    let base = "Hello"
    let newString = base.appending(", Swift!")
    print(newString) // "Hello, Swift!"

    += 연산자로도 가능

    var base2 = "Hello"
    base2 += ", Swift!"
    print(base2) // "Hello, Swift!"

    숫자를 문자열로 변환 (String(describing:))

    정수 & 실수 → 문자열 변환

    let num = 42
    let strNum = String(num)
    print(strNum) // "42"

    소수점 자릿수 지정 (String(format:))

    let pi = 3.141592
    print(String(format: "%.2f", pi)) // "3.14"

    문자열 비교 관련 함수

    문자열 동등 비교 (==, !=)

    let str1 = "Swift"
    let str2 = "swift"
    
    print(str1 == str2) // false (대소문자 구분)
    print(str1.lowercased() == str2.lowercased()) // true (소문자로 변환 후 비교)

    대소문자 무시하고 비교 (caseInsensitiveCompare)

    let str1 = "Swift"
    let str2 = "swift"
    
    let result = str1.caseInsensitiveCompare(str2)
    print(result == .orderedSame) // true

    로컬라이징 기반 정렬 (localizedStandardCompare())

    let words = ["apple", "Banana", "cherry"]
    let sortedWords = words.sorted { $0.localizedStandardCompare($1) == .orderedAscending }
    print(sortedWords) // ["apple", "Banana", "cherry"] (대소문자 구분 없이 정렬)

    문자열 인덱스 및 부분 문자열 관련 함수

    문자열의 첫 번째 & 마지막 문자 가져오기 (startIndex, endIndex)

    문자열 범위를 지정하여 부분 문자열 추출 가능

    • text[text.count - 1]처럼(배열처럼) 접근하면 오류 발생

    let text = "Swift"
    
    print(text[text.startIndex]) // "S"
    print(text[text.index(before: text.endIndex)]) // "t"

    범위 연산자를 이용하여 부분 문자열 가져오기

    let start = text2.startIndex
    let end = text2.index(start, offsetBy: 4)
    print(text2[start...end]) // "Hello"

    문자열 앞뒤 일부 가져오기 (prefix(), suffix())

    문자열 범위를 지정하여 부분 문자열 추출 가능

    let text2 = "Hello, Swift!"
    print(text2.prefix(5))  // "Hello"
    print(text2.suffix(6))  // "Swift!"

    범위 연산자를 이용하여 부분 문자열 가져오기

    let text2 = "Hello, Swift!"
    let start = text2.startIndex
    let end = text2.index(start, offsetBy: 4)
    print(text2[start...end]) // "Hello"

    Substring을 String으로 변환하려면 String() 사용

    let text2 = "Hello, Swift!"
    let subString = text2.prefix(5)
    let newString = String(subString)

    다국어 지원(Localization) 관련 함수

    번역된 문자열 가져오기 (localized())

    앱에서 다국어 지원이 필요할 때 유용한 함수

    let greeting = NSLocalizedString("hello", comment: "인사말")
    print(greeting) // "Hello" (영어) or "안녕하세요" (한국어)

    숫자, 날짜 포맷 자동 변환 (formatted())

    지역별 숫자, 날짜, 통화 포맷 적용 가능

    let number = 1234567.89
    print(number.formatted()) // "1,234,567.89" (국가별 포맷 적용)






    - 컬렉션 아티클