내일배움캠프 7일차

임클·2025년 3월 11일

내일배움캠프

목록 보기
7/44
post-thumbnail

일정


1️⃣ Swift Standard Library (Swift)

Swift 기본 라이브러리에서 제공하는 문자열 관련 기능

✅ 주요 메서드

메서드설명
.isEmpty문자열이 비어있는지 확인
.count문자열 길이 반환
.uppercased()모든 문자를 대문자로 변환
.lowercased()모든 문자를 소문자로 변환
.hasPrefix(_:)특정 문자열로 시작하는지 확인
.hasSuffix(_:)특정 문자열로 끝나는지 확인
.contains(_:)특정 문자열을 포함하는지 확인
.split(separator:)특정 문자를 기준으로 문자열을 나눔
.replacingOccurrences(of:with:)특정 문자열을 다른 문자열로 변경
.trimmingCharacters(in:)특정 문자(공백 등)를 제거

✅ 컬렉션 관련 메서드 (SequenceCollection 프로토콜)

메서드설명
.allSatisfy(_:)모든 문자가 특정 조건을 만족하는지 확인
.map(_:)각 문자를 변환하여 새로운 컬렉션 생성
.filter(_:)특정 조건을 만족하는 문자만 남김
.reduce(_:_:)문자열의 모든 요소를 하나의 값으로 축약
.forEach(_:)문자열의 각 문자에 대해 반복 실행
let text = "12345"
let isAllDigits = text.allSatisfy { $0.isNumber } // true

2️⃣ Foundation (Foundation)

Foundation 프레임워크를 임포트하면 더욱 강력한 문자열 처리 기능

import Foundation

✅ 주요 기능

기능설명
NSStringSwift.String보다 더 많은 기능 제공
NSAttributedString스타일링된 문자열을 다룰 수 있음
NSMutableAttributedString동적으로 문자열 스타일 변경 가능
range(of:)특정 문자열의 위치 찾기
localizedStandardContains(_:)현지화된 검색 수행
localizedStandardCompare(_:)현지화된 정렬 수행
localizedCaseInsensitiveCompare(_:)대소문자 구분 없이 정렬
let text = "Hello, Swift!"
if text.range(of: "Swift") != nil {
    print("문자열에 'Swift'가 포함되어 있음")
}

3️⃣ Regular Expression (NSRegularExpression)

정규식을 이용하여 문자열을 분석하거나 변경할 때 사용

import Foundation

✅ 주요 기능

기능설명
NSRegularExpression정규식 패턴을 사용하여 문자열 검사
firstMatch(in:options:range:)첫 번째 일치 항목 찾기
matches(in:options:range:)모든 일치 항목 찾기
stringByReplacingMatches(in:options:range:withTemplate:)정규식 패턴을 기반으로 문자열 변경
let pattern = "[0-9]+" // 숫자만 찾기
let regex = try! NSRegularExpression(pattern: pattern)
let testString = "Hello 123, this is 456 test."
let matches = regex.matches(in: testString, range: NSRange(testString.startIndex..., in: testString))

for match in matches {
    print((testString as NSString).substring(with: match.range)) // "123", "456"
}

4️⃣ Text Processing (TextKit & Natural Language)

문장 분석 및 자연어 처리를 위한 기능

import NaturalLanguage

✅ 주요 기능

기능설명
NLLanguageRecognizer텍스트의 언어 감지
NLTagger단어, 문장, 품사 분석
NSLinguisticTagger문장 구조 분석
let tagger = NLTagger(tagSchemes: [.language])
tagger.string = "Bonjour, comment ça va?"
let language = tagger.tag(at: tagger.string!.startIndex, unit: .paragraph, scheme: .language).map { $0.rawValue }
print(language ?? "Unknown") // "fr" (프랑스어)

📌 정리

프레임워크주요 기능
Swift Standard Library기본 문자열 처리 (isEmpty, count, allSatisfy, map, filter, reduce)
Foundation고급 문자열 처리 (NSString, range(of:), localizedStandardCompare)
NSRegularExpression정규식 패턴을 이용한 문자열 분석 및 변환
Natural Language자연어 처리 (NLTagger, NLLanguageRecognizer)

0개의 댓글