Donc je peux faire ceci:
var stringNumb: NSString = "1357"
var someNumb: CInt = stringNumb.intValue
Mais je ne trouve pas le moyen de le faire avec String
. J'aimerais faire quelque chose comme:
var stringNumb: String = "1357"
var someNumb: Int = Int(stringNumb)
Cela ne fonctionne pas non plus:
var someNumbAlt: Int = myString.integerValue
var someNumb: Int? = Int(stringNumb)
ouvar someNumb = Int(stringNumb)
Réponses:
Swift 2.0 vous pouvez initialiser Integer à l'aide du constructeur
la source
toInt()
méthode dans le cadre deString
. CeInt
constructeur est donc désormais le seul moyen de convertir des chaînes en entiers.J'utiliserais:
Remarque
toInt()
:la source
var someNumb: Int = stringNumber.toInt()!
comme @NateCook l'a souligné!
l'appel, vous pouvez déclarer votre variable en option:someNumb: Int? = stringNumber.toInt()
. Ensuite, le système de sécurité de type sera conscient qu'ilfoo
peut ne pas exister. La mise!
plantera bien sûr si votre chaîne ne peut pas être convertie en nombre.Dans Swift 3.0
Type 1: convertir NSString en chaîne
Type 2: si la chaîne a uniquement un entier
Type 3: si la chaîne a une valeur flottante
la source
stringToFloat
est!= nil
, vous devriez utiliserif let
.La méthode que vous voulez est
toInt()
- vous devez être un peu prudent, car letoInt()
retourne un Int facultatif.la source
toInt()
est la bonne façon de le faire. les options font partie intégrante de la langueSi vous pouvez utiliser
NSString
uniquement un fichier.C'est assez similaire à objective-c. Tous les types de données sont là mais nécessitent l'
as NSString
ajoutNous avons également
toInt()
ajouté une fonction Voir Apple Inc. «Le langage de programmation Swift». iBooks. https://itun.es/us/jEUH0.l page 49la source
as NSString
. fixed it @gwcoffeyLa réponse ci-dessus ne m'a pas aidé car la valeur de ma chaîne était "700,00"
avec Swift 2.2 cela fonctionne pour moi
J'ai passé myInt à NSFormatterClass
Merci à ce billet de blog.
la source
Double()
la même manière que nous utilisonsInt()
. Pas besoin d'utiliser le pontage vers NSString.Double()
puis utiliserInt()
. Comme ça:if let d = Double("700.00") { let i = Int(d); print (i) }
:)Vous pouvez passer de String à NSString et convertir de CInt en Int comme ceci:
la source
J'ai écrit une extension à cet effet. Il renvoie toujours un fichier
Int
. Si la chaîne ne rentre pas dans unInt
, 0 est renvoyé.la source
return self.toInt() ?? 0
. Il est probablement préférable de l'écrire de cette façon en ligne plutôt que d'avoir une méthode d'extension pour cela.Une solution plus générale pourrait être une extension
ceci, par exemple, étend l'objet String natif swift de toFloat
la source
Convertissez String en Int dans Swift 2.0:
utilisation
.intergerValue or intValue for Int32
la source
Cotes 8: 1 (*)
ou
Int(String)
renvoie un optionnelInt?
, pas unInt
.Utilisation sûre: ne pas déballer explicitement
ou
(*) Aucune des réponses n'indiquait pourquoi cela
var someNumb: Int = Int(stringNumb)
ne fonctionnait pas.la source
Façon simple mais sale
La voie d'extension
C'est vraiment mieux, car il jouera bien avec les paramètres régionaux et les décimales.
Maintenant, vous pouvez simplement faire:
la source