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
How do you convert (cast) an Int
(integer) to a Character
(char) in Swift?
Illustrative Problem/Task Challenge
Generate a for loop which prints the letters 'A' through 'Z', e.g. something like this:
for(var i:Int=0;i<26;i++) { //Important to note - I know print(Character('A' + i)); //this is horrendous syntax... } //just trying to illustrate! :)
To convert an Int value to a String value in Swift, use String(). String() accepts integer as argument and returns a String value created using the given integer value.
Swift Character Character is a data type that represents a single-character string ( "a" , "@" , "5" , etc). We use the Character keyword to create character-type variables in Swift. For example, var letter: Character. Here, the letter variable can only store single-character data.
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))) }
For the sake of future visitors, I am providing a basic answer to the question title rather than the details of the question itself.
It is a two step process. Convert the Int
to a UnicodeScalar
and then convert the UnicodeScalar
to a Character
.
let myInteger: Int = 97 // convert Int to a valid UnicodeScalar guard let myUnicodeScalar = UnicodeScalar(myInteger) else { return } // convert UnicodeScalar to Character let myCharacter = Character(myUnicodeScalar) // results print(myCharacter) // a
(source)
Or alternatively...
if let myUnicodeScalar = UnicodeScalar(97) let myCharacter = Character(myUnicodeScalar) }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With