generic convertir convert cast apple ios swift int character var

ios - cast - Cómo convertir un Int a un personaje en Swift



string to int swift 4 (5)

He luchado y he fallado durante más de diez minutos aquí y cedo. Necesito convertir un Int a un personaje en Swift y no puedo resolverlo.

Pregunta

¿Cómo convertir ( transmitir ) un Int ( entero ) a un Character ( char ) en Swift?

Problema ilustrativo / desafío de tarea

Genere un bucle for que imprima las letras ''A'' a ''Z'', por ejemplo, algo como esto:

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! :)


Para un contexto útil, tomando vacawama''s y Nate Cook''s UnicodeScalar para usar -

let startingValue = Int(UnicodeScalar("A").value) for i in 0..<26 { let itemStr = String(UnicodeScalar(i + startingValue)) items.append("Item " + itemStr) }


No puede convertir un entero directamente a una instancia de Character , pero puede pasar de entero a UnicodeScalar a Character y viceversa:

let startingValue = Int(("A" as UnicodeScalar).value) // 65 for i in 0 ..< 26 { print(Character(UnicodeScalar(i + startingValue))) }


Hasta ahora he llegado a esto:

for i in 0 ..< 26 { print(Character(UnicodeScalar(Int(UnicodeScalar("A").value) + i))) }

Si solo intenta generar "A" a "Z", puede evitar los cálculos y simplemente hacer:

for c in UnicodeScalar("A").value...UnicodeScalar("Z").value { print(String(UnicodeScalar(c))) }


prueba esto

for i in 0...25 { let string = String(format: "%c", i+65) as String NSLog("%@", string) }


Cómo convertir un Int a un personaje en Swift

Por el bien de los futuros visitantes, les proporciono una respuesta básica al título de la pregunta en lugar de los detalles de la pregunta en sí.

Es un proceso de dos pasos. Convierta el Int a UnicodeScalar y luego convierta el UnicodeScalar en un 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

(fuente)

O alternativamente...

if let myUnicodeScalar = UnicodeScalar(97) let myCharacter = Character(myUnicodeScalar) }

Ver también