for-in loop
let str = readLine()! // "24500" 입력
var sum = 0
for ch in str {
// 문자열에서 문자 접근
print(ch, terminator: " ") // 2 4 5 0 0
sum += Int(String(ch))! // Character > Stirng 변환 후 String을 Int 변환
// Character Int로 변환 불가능, String로 변환 후 Int로 변환
}
print(sum) // 11
index
let str = readLine()! // 12345
let n = str.count
str[str.startIndex] // 1
str[str.index(before: str.endIndex)] // 5
str[str.index(after: str.startIndex)] // 2
let index = str.index(str.startIndex, offsetBy: 3)
str[index] // 4
for i in 0..<n {
let index = str.index(str.startIndex, offsetBy: i)
print("\(str[index])", terminator: " ") // 1 2 3 4 5
}
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
}