String
은 Foundation
의 NSString
이 브릿지된 타입
String
은 struct
로 정의되어 있기 때문에, 값 타입으로 사용된다.
for-in
loop을 사용해 String
의 개별 문자 접근 가능
for char in "Hello!" { } // char = "H", "e", "l", "l", "o", "!"
문자 배열을 이용해 문자열 생성 가능
let chars: [Character] = ["H", "e", "l", "l", "o", "!"]
let string = String(chars) // string : "Hello!"
startIndex
, endIndex
해당 문자열의 첫 번째 인덱스와 마지막 인덱스
index(before:)
, index(after:)
인자로 주어지는 인덱스의 전 / 후 인덱스
index(_:offsetBy:)
첫 번째 인자로 주어진 인덱스에서 두 번째 인자로 주어진 offset만큼의 인덱스 반환
indices
문자열의 개별 문자 접근
let hello = "Hello!"
for index in hello.indices {
print("\(hello[index]) ", terminator: "")
}
// H e l l o !
위 메서드들은 Collection
프로토콜을 따르는 Array
, Dictionary
, Set
에서도 사용 가능
insert(:at:)
, insert(contentsOf:at:)
두 번째 인자로 주어지는 인덱스에 첫 번째 인자로 주어지는 문자 혹은 문자열을 삽입
remove(at:)
, removeSubrange(:)
인자로 주어지는 인덱스나 범위에 있는 문자들을 삭제
위 메서드들은 RangeReplaceableCollection
프로토콜을 따르는 Array
, Dictionary
, Set
에서도 사용 가능
부분 문자열으로, 원본 String
을 참조
SubString
을 계속 사용하면, 원본 문자열까지 메모리에 계속 남아있게 됨String
인스턴스로 바꾸어 사용하면 메모리 관리에 효율적