String의 특정 인덱스에 접근하기

기본 형식

변수명[변수명.인덱스]

Swift에서 String 타입에서 특정 인덱스에 접근하기 위해서는 다른 Array와 같이 arr[i] 의 방식으로 사용할 수 없다.

Swift에서 문자열을 인코딩하는 방식에 따른 특이점인데,
결과적으로 String의 각 문자열마다 저장 용량이 달라 String을 호출한 후에야 인덱스를 구할 수 있기 때문이라고 한다.

따라서 직접적으로 숫자를 입력하는 대신, 인덱스 구문을 통해야 한다.

키워드

  • startIndex
  • endIndex
  • index(after: 인덱스)
  • index(before: 인덱스)
  • index(인덱스, offsetBy: Int)
  • greeting.firstIndex(of: "문자")

기본 예제

// 변수 선언하기
var greeting = "Guten Tag!"

// 첫 번째 글자 호출하기 = G
greeting[greeting.startIndex]

// 두 번째 글자 호출하기 = 첫 번째의 다음 글자 = u
greeting[greeting.index(after: greeting.startIndex)]

// 마지막 글자 호출하기 = 마지막 +1의 직전 글자 = !
greeting[greeting.index(before: greeting.endIndex)]

// 7번째 글자 호출하기 = a
greeting[greeting.index(greeting.startIndex, offsetBy: 7)]
// 첫 번째 글자로부터 7번째 인덱스를 구한다. → 해당 인덱스를 substring으로 사용해 글자를 호출한다.

심화 예제

특정 문자(",")가 시작되는 위치에 접근하기

// 변수 선언하기
greeting = "Hello, world!"

// 인덱스 변수 선언하기
let index = greeting.firstIndex(of: ",") ?? greeting.endIndex
// greeting에서 처음으로 등장하는 ","의 인덱스를 구한다. → greeting에 ","가 등장하지 않을 시 디폴트로 마지막 인덱스를 호출한다.

// ","가 처음 등장하는 위치까지의 문자 구하기 = Hello
let beginning = greeting[..<index]
// 인덱스를 substring으로 사용해 글자를 호출한다.

다음에서 발췌

The Swift Programming Language (Swift 5.7)
Apple Inc.
https://books.apple.com/kr/book/the-swift-programming-language-swift-5-7/id881256329
이 자료는 저작권에 의해 보호됩니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤