How to convert an Int to a Character in Swift

后端 未结 8 1905
萌比男神i
萌比男神i 2020-12-01 20:49

I\'ve struggled and failed for over ten minutes here and I give in. I need to convert an Int to a Character in Swift and cannot solve it.

Question<

相关标签:
8条回答
  • 2020-12-01 21:20

    Here is an extension for Int to provide a correspondingLetter function :

    extension Int {
        func correspondingLetter(inUppercase uppercase: Bool = false) -> String? {
            let firstLetter = uppercase ? "A" : "a"
            let startingValue = Int(UnicodeScalar(firstLetter)!.value)
            if let scalar = UnicodeScalar(self + startingValue) {
                return String(scalar)
            }
            return nil
        }
    }
    

    Note that if the int is larger then 26 you'll get special characters.

    0 讨论(0)
  • 2020-12-01 21:23

    You can't convert an integer directly to a Character instance, but you can go from integer to UnicodeScalar to Character and back again:

    let startingValue = Int(("A" as UnicodeScalar).value) // 65
    for i in 0 ..< 26 {
        print(Character(UnicodeScalar(i + startingValue)))
    }
    
    0 讨论(0)
提交回复
热议问题