스위프트에서 스트링 다루기가 너무 힘들다..
정리해봐야겠다.
정리하고나면 별거 아니겠지..
var alpha = [Int](repeating: 0, count: 26)
let str = readLine()!
//아직 왜 느낌표 붙이는지 정확하게 이해하지 못했다.
//옵셔널에 관한 공부가 필요하다.
//입력이 안될리가 없어! 라는 느낌의 느낌표로 이해하고 있다.
sobbang
print(str)
/*
출력내용
sobbang
*/
for c in str {
print(c)
}
/*
출력내용
s
o
b
b
a
n
g
*/
당연히
print(str[0])//오류발생
이라고 하면 될 줄 알았으나
string.index를 써보시는것은 어떻냐는 제안을 받을 수 있다.
(오류발생)
str 속 내용물의 크기가 일률적이지 않기 때문인 것으로 이해했다.
str[1]은 str[0] 다음칸의 녀석일텐데, 한칸의 단위가 그때그때 다르기 때문인 것 같다.
그래서 아래와 같이 작성해야 한다.
print(str[str.startIndex])
/*
출력내용
s
*/
print(str[str.index(str.startIndex, offsetBy: 1)])
/*
출력내용
o
*/
이렇게 까지 해야하나 싶지만 쓰다보니 편안~하다.
2번째집 문앞으로 가는 방법
집[2번째]
집[집주소(1번집, (집사이의 거리)*1칸)]
이런식으로 이해하고 있다.
나중에 더 써야지
var s = UnicodeScalar(65+1)
//B 출력
var arr = read.components(separatedBy: " ").map{ Int($0)! }
//왜?
var arr = read.components(separatedBy: " ").map({ (value : String) -> Int in return Int(value)! })
var arr = read.components(separatedBy: " ").map({ (value) -> Int in return Int(value)! })
var arr = read.components(separatedBy: " ").map({ (value) -> Int in Int(value)! })
var arr = read.components(separatedBy: " ").map({ (value) in Int(value)! })
var arr = read.components(separatedBy: " ").map({ Int($0)! })
var arr = read.components(separatedBy: " ").map() { Int($0)! }
var arr = read.components(separatedBy: " ").map{ Int($0)! }