Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert an Int to a Character in Swift

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! :) 
like image 624
J-Dizzle Avatar asked Dec 14 '15 03:12

J-Dizzle


People also ask

How do you convert int to text in Swift?

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.

What is a character in swift programming?

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.


2 Answers

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))) } 
like image 141
Nate Cook Avatar answered Sep 30 '22 09:09

Nate Cook


How to convert an Int to a Character in Swift

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

See also

  • How to express Strings in Swift using Unicode hexadecimal values (UTF-16)
  • Working with Unicode code points in Swift
like image 39
Suragch Avatar answered Sep 30 '22 07:09

Suragch