J'essaie de trouver un moyen de convertir un Int
en un String
dans Swift.
Je trouve une solution de contournement en utilisant NSNumber
mais j'aimerais bien savoir comment faire tout cela à Swift.
let x : Int = 45
let xNSNumber = x as NSNumber
let xString : String = xNSNumber.stringValue
Conversion de Int
en String
:
let x : Int = 42
var myString = String(x)
Et inversement - convertir String
en Int
:
let myString : String = "42"
let x: Int? = myString.toInt()
if (x != nil) {
// Successfully converted String to Int
}
Ou si vous utilisez Swift 2 ou 3:
let x: Int? = Int(myString)
Vérifiez la réponse ci-dessous:
let x : Int = 45
var stringValue = "\(x)"
print(stringValue)
Dans Swift 3.:
var value: Int = 10
var string = String(describing: value)
Voici 4 méthodes:
var x = 34
var s = String(x)
var ss = "\(x)"
var sss = toString(x)
var ssss = x.description
Je peux imaginer que certaines personnes auront un problème avec ss. Mais si vous cherchiez à construire une chaîne contenant un autre contenu, pourquoi pas.
Swift 4 :
let x:Int = 45
let str:String = String(describing: x)
Developer.Apple.com> String> init (décrivant:)
L'initialiseur String (décrivant :) est le moyen privilégié pour convertir une instance de tout type en chaîne.
Juste pour être complet, vous pouvez aussi utiliser:
let x = 10.description
ou toute autre valeur prenant en charge une description.
Swift 4:
Essayer d'afficher la valeur dans label sans Facultatif () Word.
ici, x est une valeur Int utilisant.
let str:String = String(x ?? 0)
Pour vous épargner du temps et des problèmes à l'avenir, vous pouvez créer une extension Int. En général, je crée un fichier de code partagé dans lequel je mets des extensions, des énumérations et d’autres choses amusantes. Voici à quoi ressemble le code d'extension:
extension Int
{
func toString() -> String
{
var myString = String(self)
return myString
}
}
Ensuite, lorsque vous souhaitez convertir un int en chaîne, vous pouvez faire quelque chose comme:
var myNumber = 0
var myNumberAsString = myNumber.toString()
pour une raison quelconque, la réponse acceptée ne fonctionnait pas pour moi. Je suis allé avec cette approche:
var myInt:Int = 10
var myString:String = toString(myInt)
in Swift 3. c'est ainsi que nous pouvons convertir Int
en String
et String
en Int
//convert Integer to String in Swift 3.0
let theIntegerValue :Int = 123 // this can be var also
let theStringValue :String = String(theIntegerValue)
//convert String to Integere in Swift 3.0
let stringValue : String = "123"
let integerValue : Int = Int(stringValue)!
Plusieurs façons de faire ceci:
var str1:String="\(23)"
var str2:String=String(format:"%d",234)
Swift 2:
var num1 = 4
var numString = "56"
var sum2 = String(num1) + numString
var sum3 = Int(numString)
iam utilisant cette approche simple
Chaîne à Int:
var a = Int()
var string1 = String("1")
a = string1.toInt()
et de Int à String:
var a = Int()
a = 1
var string1 = String()
string1= "\(a)"
Pour ceux qui veulent convertir un Int en une chaîne Unicode, vous pouvez procéder comme suit:
let myInteger: Int = 97
// convert Int to a valid UnicodeScalar
guard let myUnicodeScalar = UnicodeScalar(myInteger) else {
return ""
}
// convert UnicodeScalar to String
let myString = String(myUnicodeScalar)
// results
print(myString) // a
Ou bien:
let myInteger: Int = 97
if let myUnicodeScalar = UnicodeScalar(myInteger) {
let myString = String(myUnicodeScalar)
}
let a =123456888
var str = String(a)
OR
var str = a as! String
let Str = "12"
let num: Int = 0
num = Int (str)
Je préfère utiliser interpolation de chaîne
let x = 45
let string = "\(x)"
Chaque objet a une représentation de chaîne. Cela rend les choses plus simples. Par exemple, si vous devez créer String
avec plusieurs valeurs. Vous pouvez également faire des calculs ou utiliser certaines conditions
let text = "\(count) \(count > 1 ? "items" : "item") in the cart. Sum: $\(sum + shippingPrice)"
exampleLabel.text = String(yourInt)
Si vous aimez l'extension Swift, vous pouvez ajouter le code suivant
extension Int
{
var string:String {
get {
return String(self)
}
}
}
alors, vous pouvez obtenir une chaîne par la méthode que vous venez d'ajouter
var x = 1234
var s = x.string
Pour convertir String en Int
var numberA = Int("10")
Print(numberA) // It will print 10
Pour convertir Int en chaîne
var numberA = 10
1er chemin)
print("numberA is \(numberA)") // It will print 10
2ème voie)
var strSomeNumber = String(numberA)
ou
var strSomeNumber = "\(numberA)"
Dans Swift 3.0, vous pouvez changer un entier en chaîne comme indiqué ci-dessous
let a:String = String(stringInterpolationSegment: 15)
Une autre façon est
let number: Int = 15
let _numberInStringFormate: String = String(number)
// ou un nombre entier quelconque au lieu de 15