감자주먹밥

Swift PS 할때 유용한 것 본문

IOS/Swift

Swift PS 할때 유용한 것

JustHm 2021. 9. 1. 22:17
728x90

입력

readLine()

var input = readLine()! //String 으로 들어온다.
var input = readLine()!.split(separator: " ").map {Int($0)!} //공백있는 숫자 나눠서 받을 때

강제 언래핑 해주는 것은 readLine의 타입이 Optional이 붙은 문자열이기 때문이다. 공백이 들어올 수 도 있으니깐!


진법 변환

  • n진수를 10진수로 변환
    let binary = "111" // 
    let decimal = Int(binary, radix: 2)! // radix가 현제 진법을 나타낸다.
  • 10진수를 n진수로 변환
    let decimal = 5
    let binary = String(decimal, radix: 2)
    //uppercase를 true로 해줘야지 위로 가능
    let hex = String(integer, radix: 16, uppercase: true)! // Optional로 리턴

문자열

문자열 인덱스 접근은 ex) str[4] 처럼 간단하게 되지 않는다.
String.Index 라는 타입이 존재하기 때문에 이를 이용해서 접근해야한다.
생각보다 길어져서 귀찮다.

var str = "JustHm"
var firstIndex = str.index(s.startIndex, offsetBy:0)
var lastIndex = str.index(s.endIndex, offsetBy:-2)
print(str[firstIndex..<lastIndex]) // Just

아스키코드 변환
정수를 아스키 코드로 변환하는 방법이 여타 언어와 다르다.
UnicodeScalar 라는 타입이 있고, 이를 이용하여 아스키코드를 사용할 수 있다.

Character("a").asciiValue! // 97 (UInt8)

let char = Character(UnicodeScalar(97)) // a

앞으로 문제 풀어보면서 유용한 것 적어넣을 예정!!

728x90

'IOS > Swift' 카테고리의 다른 글

[Swift] Swift Concurrency - Actor  (0) 2023.03.14
[Swift] Swift Concurrency - Task  (0) 2023.03.06
[Swift] Swift Concurrency - async/await  (0) 2023.03.02
[Swift] 동시성 프로그래밍 GCD, Operation  (0) 2023.02.25
Xcode 단축키 모음  (2) 2022.01.13
Comments