문자/문자열을 정수로 변환하는 법
2023.02.27
프로그래머스 369 게임을 풀면서 Character에서 Int으로 변환하면서 방법을 찾아 보았다.
var chr: Character = "4"
var num: Int
// 잘못된 방법 (error: No exact matches in call to initializer)
num = Int(chr)!
// 가능한 방법
num = Int(Character(chr))!
Character 타입에서 Int 타입으로 바로 캐스팅이 안되고 Character -> String -> Int 타입으로 캐스팅이 가능한 것 을 알게 되었다.
이 방법을 찾기 전에 문자에서 정수형으로 변환하는 방법을 찾은 것이 wholeNumberValue 이다. (변환하면 Optional이기 때문에 Optional unwrapping(!)을 해줘야 한다.)
[##Image|kage@bbysGd/btr1ddp10sh/7qc9yVkEGYbyVYwgi0u4UK/img.png|CDM|1.3|{"originWidth":1590,"originHeight":1502,"style":"alignCenter"}##]
공식 문서의 wholeNumberValue의 정의는 문자가 의미하는 숫자 값(wholeNumberValue)을 반환해 준다.
Declaration(선언)에서 wholeNumberValue는 optional 형태의 Int로 되어 있고, 공식문서의 예시로 "4", "④", "万", "a"와 같은 문자들은 wholeNumberValue를 이용하면 Optional(4)로 넘겨주는 것을 확인 할 수 있다.