일정
- 알고리즘 스터디OT (09:00 ~ 09:30)
- 알고리즘 풀이
- 팀 데일리 스크럼 (10:00 ~ 11:00)
- 개인과제 진행 (11:00 ~ 18:00)
- 알고리즘 특장 (19:00 ~ 20:00)
- 데일리 스크럼(20:00 ~ 20:30)
1️⃣ Swift Standard Library (Swift)
Swift 기본 라이브러리에서 제공하는 문자열 관련 기능
✅ 주요 메서드
| 메서드 | 설명 |
|---|
.isEmpty | 문자열이 비어있는지 확인 |
.count | 문자열 길이 반환 |
.uppercased() | 모든 문자를 대문자로 변환 |
.lowercased() | 모든 문자를 소문자로 변환 |
.hasPrefix(_:) | 특정 문자열로 시작하는지 확인 |
.hasSuffix(_:) | 특정 문자열로 끝나는지 확인 |
.contains(_:) | 특정 문자열을 포함하는지 확인 |
.split(separator:) | 특정 문자를 기준으로 문자열을 나눔 |
.replacingOccurrences(of:with:) | 특정 문자열을 다른 문자열로 변경 |
.trimmingCharacters(in:) | 특정 문자(공백 등)를 제거 |
✅ 컬렉션 관련 메서드 (Sequence 및 Collection 프로토콜)
| 메서드 | 설명 |
|---|
.allSatisfy(_:) | 모든 문자가 특정 조건을 만족하는지 확인 |
.map(_:) | 각 문자를 변환하여 새로운 컬렉션 생성 |
.filter(_:) | 특정 조건을 만족하는 문자만 남김 |
.reduce(_:_:) | 문자열의 모든 요소를 하나의 값으로 축약 |
.forEach(_:) | 문자열의 각 문자에 대해 반복 실행 |
let text = "12345"
let isAllDigits = text.allSatisfy { $0.isNumber }
2️⃣ Foundation (Foundation)
Foundation 프레임워크를 임포트하면 더욱 강력한 문자열 처리 기능
import Foundation
✅ 주요 기능
| 기능 | 설명 |
|---|
NSString | Swift.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))
}
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")
📌 정리
| 프레임워크 | 주요 기능 |
|---|
| Swift Standard Library | 기본 문자열 처리 (isEmpty, count, allSatisfy, map, filter, reduce) |
| Foundation | 고급 문자열 처리 (NSString, range(of:), localizedStandardCompare) |
| NSRegularExpression | 정규식 패턴을 이용한 문자열 분석 및 변환 |
| Natural Language | 자연어 처리 (NLTagger, NLLanguageRecognizer) |