Swift 문자열에서 문자 접근

Steve Jack·2021년 7월 20일
0
post-thumbnail
post-custom-banner

문자열에서 문자 접근 방법을 알아봅시다.

for-in loop

var sum = 0

let str = readLine()! // "24500" 입력

for ch in str {
  print(ch, terminator: " ") // 2 4 5 0 0
  sum += Int(String(ch))! // 문자를 문자열로 변환 후 문자열을 정수형으로
  // 문자에서 정수형으로 변환이 안됨
}

// 2 + 4 + 5 = 11
print(sum) // 11

subscript

subcripts는 대괄호[]나 instance 이름 뒤에 특정 값을 넣어 값에 접근할 수 있다.

let str = readLine()! // "24567" 입력
let len = str.count // 5

str[str.startIndex] // 2
str[str.index(before: str.endIndex)] // 7
str[str.index(after: str.startIndex)] // 4
let index = str.index(str.startIndex, offsetBy: 3)
str[index] // 6

// index는 let(상수)로 선언해줘야 합니다.
for i in 0..<len {
  let index = str.index(str.startIndex, offsetBy: i)
  print(str[index], terminator: " ") // 2 4 5 6 7
}

startIndex : 문자열의 시작 요소 인덱스를 가리킨다.
endIndex : 문자열의 마지막 요소 인덱스 다음을 가리킨다.
index(before: String.Index) : 인자로 들어온 인덱스 1칸 앞을 가리킨다.
index(after: String.Index) : 인자로 들어온 인덱스 1칸 뒤를 가리킨다.
index(String.Index, offsetBy: String.IndexDistance) : 인자로 들어온 인덱스와 offsetBy 차이만큼 떨어진 위치를 가리킨다.

indice property

indice property를 이용하여 String의 index 접근가능

let str = readLine()! // "24500" 입력

for index in str.indices {
    print("\(str[index])", terminator: "") // 24500
}

이 밖에도 extensions을 이용하는 방법도 있지만 추후에 다루겠습니다.

profile
To put up a flag.
post-custom-banner

0개의 댓글