[iOS][Swift] String Indexing

Jay·2023년 10월 12일
0

iOS

목록 보기
41/47

Swift의 String 타입은 다른 프로그래밍 언어와 비교했을 때 인덱스 처리 방식이 조금 특이합니다. 이는 Swift의 문자열이 유니코드로 구성되어 있기 때문입니다. Swift에서는 String의 각 문자가 다른 길이의 유니코드를 가질 수 있어, String의 인덱스는 정수(Integer)로 바로 표현되지 않습니다. 대신 String.Index 타입을 사용하여 문자열 내의 위치를 표현합니다.

인덱스 접근 예제

let str = "Hello, Swift!"
let index = str.index(str.startIndex, offsetBy: 4)
let character = str[index]
print(character)  // 출력: o

이 코드에서 str.startIndex는 문자열의 시작 인덱스를 나타내며, offsetBy 파라미터를 사용하여 원하는 위치로 이동할 수 있습니다.

문자열 범위 지정

String에서 특정 범위의 서브스트링을 가져오려면 시작 인덱스와 종료 인덱스를 사용하여 범위를 지정해야 합니다.

let start = str.index(str.startIndex, offsetBy: 7)
let end = str.index(str.startIndex, offsetBy: 12)
let substring = str[start..<end]
print(substring)  // 출력: Swift

주의점
Swift의 String 인덱싱은 다른 언어에 비해 직관적이지 않을 수 있으며, 잘못된 인덱스를 사용하면 런타임 오류가 발생할 수 있습니다. 따라서 인덱스를 사용할 때는 항상 범위를 체크하거나, 안전하게 인덱스를 가져오는 방법을 사용해야 합니다.

profile
Junior Developer

0개의 댓글