반응형
Character
- 사람이 문자로 인식하는 것을 나타낸다.
- 문자열은 순차가 아니다. 문자로 형성된 것이 아닌 유니코드로 이루어진 거다.
유니코드란 바이트 단위의 데이터로 거의 모든 언어를 나타낼 수 있는 것이다.
문자열을 정수로 색인하지 않고 대신 특수한 타입으로 (String.Index) 문자열을 다룬다
문자열은 문자의 조합이고 모두 collection으로부터 온 것. (collection은 수열로 이루어짐!)
let pizzaJoint = "Cafe pesto"
let firstCharacterIndex = pizzaJoint.startIndex
let fourthCharacterIndex = pizzaJoint.index(firstCharacterIndex, offsetBy: 3)
let fourthCharacter = pizzaJoint[fourthCharacterIndex]
if let firstSpace = pizzaJoint.index(of: " "){ // index(of: )는 collection의 메소드
let secondWordIndex = pizzaJoint.index(firstSpace, offsetBy: 1)
let secondWord = pizzaJoint[secondWordIndex..<pizzaJoint.endIndex]
}
let value = pizzaJoint.components(seperatedBy: " ")[1]
// components(seperatedBy: )는 collection의 메소드
문자열은 값 타입이고 구조체이다.
func replaceSubrange(Range<String.Index>, with: Collection of Character)
replaceSubrange(..<s.endIndex, with: "new contents") // ..< 로 해두어도 타입을 유추할 수 있다면
스위프트가 자동으로 유추한다
Swift는 문자열 조작에 친절하지 않다
문자열 속 문자를 찾는 방법은 index(i: , offsetBy: ) 방법이 주로 쓰인다.
let str = "안녕하세요오"
let range = str.index(str.startIndex, offsetBy: 2) ... str.index(str.endIndex, offsetBy: -2)
print(str[range]) // 하세요
특정 문자를 찾아 나누는 방법으로 split이 유용하다.
let str = "하이 헬로우 안녕"
print(str.split(separator: " ")) // ["하이", "헬로우", "안녕"]
반응형
'개발 > Swift' 카테고리의 다른 글
[Swift] Interface (0) | 2021.02.26 |
---|---|
[Swift] NSAttributedString (0) | 2021.02.25 |
[Swift] Protocol 알아보기 (0) | 2021.02.25 |
[Swift] 프로토콜 지향 프로그래밍 (0) | 2020.08.13 |
[Swift] Typealias (0) | 2020.03.12 |