으니의 개발로그

[Swift] 인덱스로 문자열의 글자 가져오기 본문

Swift/with. APS

[Swift] 인덱스로 문자열의 글자 가져오기

아잉으니야 2021. 2. 2. 21:00

인덱스로 문자열의 글자 가져오기

 

처음에 나는 python 에 익숙해져 있어 문자열을 글자를 가져오기 위해 처음에는 아래와 같은 코드를 생각했다.

let name = "seonho"
let str = name[2]

하지만 swift 에서는 인덱스로 문자를 가져올 수 없다. (Array 로 바꾸면 위와 같은 방법으로 가져올 수 있긴 하다)

 

String.Index

그러면 스위프트에서는 문자열에서 인덱스를 어떻게 가져올 수 있을까?

 

처음과 마지막 인덱스에 접근하려고 한다면 startIndexendIndex 로 접근할 수 있다. 하지만 여기서 주의할 것은 endIndex 는 마지막 인덱스 값을 나타내는게 아니라 문자열의 길이를 나타낸다는 것이다.

let startStr = name[name.startIndex]
/* s */
let endStr = name[name.index(before: name.endIndex)]
/* o */

 

중간에 인덱스에 접근하기 위해서는 startIndexendIndexIndex 와 함께 잘 조합하면 접근할 수 있다.

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와 같은 의미라고 할 수 있다.