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을 이용하는 방법도 있지만 추후에 다루겠습니다.