Swift/with. APS
[Swift] 인덱스로 문자열의 글자 가져오기
아잉으니야
2021. 2. 2. 21:00
인덱스로 문자열의 글자 가져오기
처음에 나는 python
에 익숙해져 있어 문자열을 글자를 가져오기 위해 처음에는 아래와 같은 코드를 생각했다.
let name = "seonho"
let str = name[2]
하지만 swift
에서는 인덱스로 문자를 가져올 수 없다. (Array
로 바꾸면 위와 같은 방법으로 가져올 수 있긴 하다)
String.Index
그러면 스위프트에서는 문자열에서 인덱스를 어떻게 가져올 수 있을까?
처음과 마지막 인덱스에 접근하려고 한다면 startIndex
와 endIndex
로 접근할 수 있다. 하지만 여기서 주의할 것은 endIndex
는 마지막 인덱스 값을 나타내는게 아니라 문자열의 길이를 나타낸다는 것이다.
let startStr = name[name.startIndex]
/* s */
let endStr = name[name.index(before: name.endIndex)]
/* o */
중간에 인덱스에 접근하기 위해서는 startIndex
나 endIndex
를 Index
와 함께 잘 조합하면 접근할 수 있다.
let name = "seonho"
let str = name[name.index(name.startIndex, offsetBy: 2)]
/* o */
let str2 = name[name.index(name.endIndex, offsetBy: -2)]
/* h */
위의 코드에서 name.index(name.startIndex, offsetBy: 2)
가 인덱스 2와 같은 의미라고 할 수 있다.