Ik probeer uit te zoeken hoe ik een Int
in een String
in Swift kan casten.
Ik vind een oplossing met behulp van NSNumber
, maar ik zou graag willen weten hoe ik dit allemaal in Swift kan doen.
let x : Int = 45
let xNSNumber = x as NSNumber
let xString : String = xNSNumber.stringValue
Antwoord 1, autoriteit 100%
Int
converteren naar String
:
let x : Int = 42
var myString = String(x)
En andersom – String
converteren naar Int
:
let myString : String = "42"
let x: Int? = myString.toInt()
if (x != nil) {
// Successfully converted String to Int
}
Of als u Swift 2 of 3 gebruikt:
let x: Int? = Int(myString)
Antwoord 2, autoriteit 9%
Controleer het onderstaande antwoord:
let x : Int = 45
var stringValue = "\(x)"
print(stringValue)
Antwoord 3, autoriteit 6%
Hier zijn 4 methoden:
var x = 34
var s = String(x)
var ss = "\(x)"
var sss = toString(x)
var ssss = x.description
Ik kan me voorstellen dat sommige mensen een probleem hebben met ss. Maar als u op zoek bent naar een string met andere inhoud, waarom niet.
Antwoord 4, autoriteit 5%
In Swift 3.0:
var value: Int = 10
var string = String(describing: value)
Antwoord 5, autoriteit 3%
Voor de volledigheid kun je ook het volgende gebruiken:
let x = 10.description
of een andere waarde die een beschrijving ondersteunt.
Antwoord 6, autoriteit 3%
Swift 4:
let x:Int = 45
let str:String = String(describing: x)
Developer.Apple.com > Tekenreeks > init(beschrijving:)
De String(description:) initializer is de geprefereerde manier om een instantie van elk type naar een string te converteren.
Aangepaste tekenreeks convertible
Antwoord 7
Swift 4:
Proberen de waarde in label weer te geven zonder Optioneel()woord.
hier is x een Int-waarde die wordt gebruikt.
let str:String = String(x ?? 0)
Antwoord 8
Om jezelf in de toekomst tijd en gedoe te besparen, kun je een Int-extensie maken. Meestal maak ik een gedeeld codebestand waarin ik extensies, opsommingen en andere leuke dingen plaats. Zo ziet de extensiecode eruit:
extension Int
{
func toString() -> String
{
var myString = String(self)
return myString
}
}
Als je later een int naar een string wilt converteren, kun je zoiets doen als:
var myNumber = 0
var myNumberAsString = myNumber.toString()
Antwoord 9
in swift 3.0is dit hoe we Int
kunnen converteren naar String
en String
naar 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)!
Antwoord 10
om welke reden dan ook, het geaccepteerde antwoord werkte niet voor mij. Ik ging voor deze aanpak:
var myInt:Int = 10
var myString:String = toString(myInt)
Antwoord 11
Meerdere manieren om dit te doen:
var str1:String="\(23)"
var str2:String=String(format:"%d",234)
Antwoord 12
Swift 2:
var num1 = 4
var numString = "56"
var sum2 = String(num1) + numString
var sum3 = Int(numString)
Antwoord 13
ik gebruik deze eenvoudige aanpak
String naar Int:
var a = Int()
var string1 = String("1")
a = string1.toInt()
en van Int naar String:
var a = Int()
a = 1
var string1 = String()
string1= "\(a)"
Antwoord 14
Converteer Unicode Int naar String
Voor degenen die een Int naar een Unicode-tekenreeks willen converteren, kunt u het volgende doen:
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
Of anders:
let myInteger: Int = 97
if let myUnicodeScalar = UnicodeScalar(myInteger) {
let myString = String(myUnicodeScalar)
}
Antwoord 15
exampleLabel.text = String(yourInt)
Antwoord 16
Ik gebruik liever String Interpolation
let x = 45
let string = "\(x)"
Elk object heeft een tekenreeksrepresentatie. Dit maakt de zaken eenvoudiger. Bijvoorbeeld als u een String
moet maken met meerdere waarden. Je kunt er ook wiskunde in doen of een aantal voorwaarden gebruiken
let text = "\(count) \(count > 1 ? "items" : "item") in the cart. Sum: $\(sum + shippingPrice)"
Antwoord 17
String omzetten in Int
var numberA = Int("10")
Print(numberA) // It will print 10
Int verbergen in string
var numberA = 10
Eerste manier)
print("numberA is \(numberA)") // It will print 10
2e weg)
var strSomeNumber = String(numberA)
of
var strSomeNumber = "\(numberA)"
Antwoord 18
let a =123456888
var str = String(a)
OF
var str = a as! String
Antwoord 19
In swift 3.0 kun je integer veranderen in string zoals hieronder aangegeven
let a:String = String(stringInterpolationSegment: 15)
Een andere manier is
let number: Int = 15
let _numberInStringFormate: String = String(number)
//of een geheel getal in plaats van 15
Antwoord 20
Als je van snelle extensie houdt, kun je de volgende code toevoegen
extension Int
{
var string:String {
get {
return String(self)
}
}
}
dan kun je string krijgen met de methode die je zojuist hebt toegevoegd
var x = 1234
var s = x.string
Antwoord 21
Een beetje over prestaties
UI Testing Bundle
op iPhone 7 (echt apparaat) met iOS 14
let i = 0
lt result1 = String(i) //0.56s 5890kB
lt result2 = "\(i)" //0.624s 5900kB
lt result3 = i.description //0.758s 5890kB
import XCTest
class ConvertIntToStringTests: XCTestCase {
let count = 1_000_000
func measureFunction(_ block: () -> Void) {
let metrics: [XCTMetric] = [
XCTClockMetric(),
XCTMemoryMetric()
]
let measureOptions = XCTMeasureOptions.default
measureOptions.iterationCount = 5
measure(metrics: metrics, options: measureOptions) {
block()
}
}
func testIntToStringConstructor() {
var result = ""
measureFunction {
for i in 0...count {
result += String(i)
}
}
}
func testIntToStringInterpolation() {
var result = ""
measureFunction {
for i in 0...count {
result += "\(i)"
}
}
}
func testIntToStringDescription() {
var result = ""
measureFunction {
for i in 0...count {
result += i.description
}
}
}
}
Antwoord 22
let Str = "12"
let num: Int = 0
num = Int (str)
Antwoord 23
let intAsString = 45.description // "45"
let stringAsInt = Int("45") // 45