parse entero convertir convert cast swift int character swift-playground swift2

entero - Convertir carácter a Int en Swift 2.0



swift 4.2 string to int (3)

Este es un truco de improvisación que se me ocurrió. Dado que puede ser complicado convertir Character en Int , pero puede convertir fácilmente String en Int haga esto:

fileLines = Int(String(i))!

por supuesto, esto no está muy bien optimizado, pero para casos como el suyo puede hacer el truco.

Solo quiero convertir un personaje en Int .

Esto debería ser simple. Pero no he encontrado útiles las respuestas anteriores. Siempre hay algún error. Tal vez es porque lo estoy probando en Swift 2.0.

for i in (unsolved.characters) { fileLines += String(i).toInt() print(i) }


Actualmente. Una forma más simple es convertir String to Int en Swift 2.o es:

let chars = Int(chars)

No estoy seguro de si esto es lo que está intentando ... Pero puede aplicar esto fácilmente a su ciclo, por supuesto.


En Swift 2.0, toInt() , etc., han sido reemplazados por inicializadores. (En este caso, Int(someString) .)

Debido a que no todas las cadenas se pueden convertir a ints, este inicializador no está disponible , lo que significa que devuelve un int ( Int? ) Opcional en lugar de solo un Int . Lo mejor que puedes hacer es desenvolver este opcional usando if let .

No estoy seguro exactamente de lo que está buscando, pero este código funciona en Swift 2 y logra lo que creo que está tratando de hacer:

let unsolved = "123abc" var fileLines = [Int]() for i in unsolved.characters { let someString = String(i) if let someInt = Int(someString) { fileLines += [someInt] } print(i) }

O bien, para una solución Swiftier:

let unsolved = "123abc" let fileLines = unsolved.characters.filter({ Int(String($0)) != nil }).map({ Int(String($0))! }) // fileLines = [1, 2, 3]

Puedes acortar esto más con flatMap :

let fileLines = unsolved.characters.flatMap { Int(String($0)) }

flatMap devuelve "una Array contiene los resultados no nulos de mapeo de transform sobre self " ... por lo que cuando Int(String($0)) es nil , el resultado se descarta.