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
O alternativamente...
if let myUnicodeScalar = UnicodeScalar(97)
let myCharacter = Character(myUnicodeScalar)
}
Ver también
- Cómo expresar cadenas en Swift usando valores hexadecimales Unicode (UTF-16)
- Trabajando con puntos de código Unicode en Swift