Swift / String 정리

공포의 스트링

스위프트에서 스트링 다루기가 너무 힘들다..
정리해봐야겠다.
정리하고나면 별거 아니겠지..

선언

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)! }

좋은 웹페이지 즐겨찾기