Entonces puedo hacer esto:
var stringNumb: NSString = "1357"
var someNumb: CInt = stringNumb.intValue
Pero no puedo encontrar la manera de hacerlo w / a String
. Me gustaría hacer algo como:
var stringNumb: String = "1357"
var someNumb: Int = Int(stringNumb)
Esto tampoco funciona:
var someNumbAlt: Int = myString.integerValue
var someNumb: Int? = Int(stringNumb)
ovar someNumb = Int(stringNumb)
Respuestas:
Swift 2.0 puede inicializar Integer usando el constructor
fuente
toInt()
método como parte deString
. Por lo tanto, esteInt
constructor es ahora la única forma de convertir cadenas en ints.Yo usaría:
Nota
toInt()
:fuente
var someNumb: Int = stringNumber.toInt()!
como señaló @NateCook!
en la llamada, se puede declarar la variable como opcionales:someNumb: Int? = stringNumber.toInt()
. Entonces, el tipo de sistema de seguridad será consciente de quefoo
puede no existir. Poner!
, por supuesto, se bloqueará si su cadena no se puede convertir a un número.En Swift 3.0
Tipo 1: Convertir NSString a String
Tipo 2: si la cadena tiene solo entero
Tipo 3: si la cadena tiene valor flotante
fuente
stringToFloat
es!= nil
, debe usarif let
.El método que desea es
toInt()
: debe tener un poco de cuidado, ya quetoInt()
devuelve un Int opcional.fuente
toInt()
es la forma correcta de hacerlo. los opcionales son una parte central del lenguajeSi puede usar un
NSString
solo.Es bastante similar al objetivo-c. Todos los tipos de datos están ahí pero requieren la
as NSString
adiciónTambién tenemos una
toInt()
función agregada. Ver Apple Inc. "El lenguaje de programación Swift". iBooks https://itun.es/us/jEUH0.l página 49fuente
as NSString
. lo arregló @gwcoffeyla respuesta anterior no me ayudó ya que mi valor de cadena era "700.00"
con Swift 2.2 esto funciona para mí
Pasé myInt a NSFormatterClass
Gracias a esta publicación de blog.
fuente
Double()
la misma forma que nosotrosInt()
. No es necesario utilizar el puente a NSString.Double()
luego usarInt()
. Así:if let d = Double("700.00") { let i = Int(d); print (i) }
:)Puede pasar de String a NSString y convertir de CInt a Int de esta manera:
fuente
Escribí una extensión para ese propósito. Siempre devuelve un
Int
. Si la cadena no cabe en unInt
, se devuelve 0.fuente
return self.toInt() ?? 0
. Probablemente sea mejor escribirlo de esa manera en línea en lugar de tener un método de extensión para esto.Una solución más general podría ser una extensión
esto, por ejemplo, extiende el objeto String nativo rápido por toFloat
fuente
Convertir String a Int en Swift 2.0:
utilizar
.intergerValue or intValue for Int32
fuente
Probabilidades 8: 1 (*)
o
Int(String)
devuelve un opcionalInt?
, no unInt
.Uso seguro: no desenvolver explícitamente
o
(*) Ninguna de las respuestas realmente abordaba por qué
var someNumb: Int = Int(stringNumb)
no funcionaba.fuente
Manera simple pero sucia
El camino de extensión
Esto es mejor, realmente, porque jugará muy bien con configuraciones regionales y decimales.
Ahora simplemente puedes hacer:
fuente