[Swift] String - #7 Initializer(1) : Creating a String from Unicode Data
Creating a String
init()
- 빈 문자열을 생성합니다.
init(_ c: Character)
- Character를 초기값으로해서 문자열을 생성 합니다.
init(_ characters: S) where S : Sequence, S.Element == Character
init(_ elements: S) where S : Sequence, Self.Element == S.Element
init(_ other: S) where S : LosslessStringConvertible, S : Sequence, S.Element == Character
- Sequence protocol을 따르는 instance를 통해서 문자열을 초기화 합니다.
init(_ substring: Substring)
- Substring 타입으로 문자열을 초기화 합니다.
init(repeating repeatedValue: String, count: Int)
init(repeating:count:)
- 파라미터로 전달받은 String이나 Character를 count 만큼 반복해서 문자열을 초기화 합니다.
let s = String(repeating: "ab", count: 10) print(s) // Prints "abababababababababab" let zeroes = String(repeating: "0" as Character, count: 10) print(zeroes) // Prints "0000000000"
Creating a String from Unicode Data
init(_ scalar: Unicode.Scalar)
- Unicode scalar를 사용하여 초기화 합니다.

init?(data: Data, encoding: String.Encoding)
- Data를 사용해서 초기화 합니다.

init?(utf8String bytes: UnsafePointer<CChar>)
- UTF-8로 인코딩 된 bytes array를 사용하여 문자열을 초기화 합니다.

init?(validatingUTF8 cString: UnsafePointer<CChar>)
- 이 초기화 함수는 잘못된 포맷의 UTF-8 코드 시퀀스를 복구하려고 시도하지 않습니다. 아래의 코드는 첫 번째는 유효한 코드로 초기화 하여 Cafe를 출력하고, 두 번째는 잘못된 코드 시퀀스로 되어있어 초기화에 성공하지 못해 nil을 리턴하는 것을 보여줍니다.
import Foundation
let validUTF8: [CChar] = [67, 97, 102, -61, -87, 0]
validUTF8.withUnsafeBufferPointer { ptr in
let s = String(validatingUTF8: ptr.baseAddress!)
print(s)
}
// Prints "Optional(Café)"
let invalidUTF8: [CChar] = [67, 97, 102, -61, 0]
invalidUTF8.withUnsafeBufferPointer { ptr in
let s = String(validatingUTF8: ptr.baseAddress!)
print(s)
}
// Prints "nil"
init(utf16CodeUnits: UnsafePointer, count: Int)
- 지정된 유니코드 문자열 배열에서 지정된 수의 문자가 포함된 초기화된 문자열 개체를 반환합니다.
init(utf16CodeUnitsNoCopy: UnsafePointer, count: Int, freeWhenDone flag: Bool)
- UTF-16 코드 유닛의 지정된 배열에서 지정된 수의 문자가 포함된 초기화된 문자열 개체를 반환합니다.
init<C, Encoding>(decoding codeUnits: C, as sourceEncoding: Encoding.Type)
where C : Collection, Encoding : _UnicodeEncoding, C.Element == Encoding.CodeUnit
- sourceEncoding 파라미터로 전달받은 인코딩 방식의 유니코드 코드 유닛 Collection으로 문자열을 생성합니다.