Convert Int to String in Swift

StringCastingIntConverterSwift

String Problem Overview


I'm trying to work out how to cast an Int into a String in Swift.

I figure out a workaround, using NSNumber but I'd love to figure out how to do it all in Swift.

let x : Int = 45
let xNSNumber = x as NSNumber
let xString : String = xNSNumber.stringValue

String Solutions


Solution 1 - String

Converting Int to String:

let x : Int = 42
var myString = String(x)

And the other way around - converting String to Int:

let myString : String = "42"
let x: Int? = myString.toInt()

if (x != nil) {
    // Successfully converted String to Int
}

Or if you're using Swift 2 or 3:

let x: Int? = Int(myString)

Solution 2 - String

Check the Below Answer:

let x : Int = 45
var stringValue = "\(x)"
print(stringValue)

Solution 3 - String

Here are 4 methods:

var x = 34
var s = String(x)
var ss = "\(x)"
var sss = toString(x)
var ssss = x.description

I can imagine that some people will have an issue with ss. But if you were looking to build a string containing other content then why not.

Solution 4 - String

In Swift 3.0:

var value: Int = 10
var string = String(describing: value)

Solution 5 - String

Swift 4:

let x:Int = 45
let str:String = String(describing: x)

Developer.Apple.com > String > init(describing:)

> The String(describing:) initializer is the preferred way to convert an instance of any type to a string.

Custom String Convertible

enter image description here

Solution 6 - String

Just for completeness, you can also use:

let x = 10.description

or any other value that supports a description.

Solution 7 - String

Swift 4:

Trying to show the value in label without Optional() word.

here x is a Int value using.

let str:String = String(x ?? 0)

Solution 8 - String

To save yourself time and hassle in the future you can make an Int extension. Typically I create a shared code file where I put extensions, enums, and other fun stuff. Here is what the extension code looks like:

extension Int
{
    func toString() -> String
    {
        var myString = String(self)
        return myString
    }
}

Then later when you want to convert an int to a string you can just do something like:

var myNumber = 0
var myNumberAsString = myNumber.toString()

Solution 9 - String

in swift 3.0 this is how we can convert Int to String and String to 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)!

Solution 10 - String

for whatever reason the accepted answer did not work for me. I went with this approach:

var myInt:Int = 10
var myString:String = toString(myInt)

Solution 11 - String

Multiple ways to do this :

var str1:String="\(23)"
var str2:String=String(format:"%d",234)

Solution 12 - String

Swift 2:

var num1 = 4
var numString = "56"
var sum2 = String(num1) + numString
var sum3 = Int(numString)

Solution 13 - String

let intAsString = 45.description     // "45"
let stringAsInt = Int("45")          // 45

Solution 14 - String

Swift String performance

A little bit about performance UI Testing Bundle on iPhone 7(real device) with 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
            }
        }
    }
}

Solution 15 - String

iam using this simple approach

String to Int:

 var a = Int()
var string1 = String("1")
a = string1.toInt()

and from Int to String:

var a = Int()
a = 1
var string1 = String()
 string1= "\(a)"

Solution 16 - String

Convert Unicode Int to String

For those who want to convert an Int to a Unicode string, you can do the following:

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

Or alternatively:

let myInteger: Int = 97
if let myUnicodeScalar = UnicodeScalar(myInteger) {
    let myString = String(myUnicodeScalar)
}

Solution 17 - String

I prefer using String Interpolation

let x = 45
let string = "\(x)"

Each object has some string representation. This makes things simpler. For example if you need to create some String with multiple values. You can also do any math in it or use some conditions

let text = "\(count) \(count > 1 ? "items" : "item") in the cart. Sum: $\(sum + shippingPrice)"

Solution 18 - String

exampleLabel.text = String(yourInt)

Solution 19 - String

To convert String into Int

var numberA = Int("10")

Print(numberA) // It will print 10

To covert Int into String

var numberA = 10

1st way)

print("numberA is \(numberA)") // It will print 10

2nd way)

var strSomeNumber = String(numberA)

or

var strSomeNumber = "\(numberA)"

Solution 20 - String

In swift 3.0, you may change integer to string as given below

let a:String = String(stringInterpolationSegment: 15)

Another way is

let number: Int = 15
let _numberInStringFormate: String = String(number)

//or any integer number in place of 15

Solution 21 - String

let a =123456888
var str = String(a)

OR

var str = a as! String

Solution 22 - String

If you like swift extension, you can add following code

extension Int
{
    var string:String {
        get {
            return String(self)
        }
    }
}

then, you can get string by the method you just added

var x = 1234
var s = x.string

Solution 23 - String

let Str = "12"
let num: Int = 0
num = Int (str)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSteve MarshallView Question on Stackoverflow
Solution 1 - StringShaiView Answer on Stackoverflow
Solution 2 - StringPREMKUMARView Answer on Stackoverflow
Solution 3 - StringIan BradburyView Answer on Stackoverflow
Solution 4 - StringvbgdView Answer on Stackoverflow
Solution 5 - StringHamed GhadirianView Answer on Stackoverflow
Solution 6 - StringMike LischkeView Answer on Stackoverflow
Solution 7 - StringHarshil KotechaView Answer on Stackoverflow
Solution 8 - Stringuser2266987View Answer on Stackoverflow
Solution 9 - Stringcaldera.sacView Answer on Stackoverflow
Solution 10 - StringbkoppView Answer on Stackoverflow
Solution 11 - StringDhruv RamaniView Answer on Stackoverflow
Solution 12 - StringjuanmorilliosView Answer on Stackoverflow
Solution 13 - StringRoi ZakaiView Answer on Stackoverflow
Solution 14 - StringyoAlex5View Answer on Stackoverflow
Solution 15 - StringMuraree PareekView Answer on Stackoverflow
Solution 16 - StringSuragchView Answer on Stackoverflow
Solution 17 - StringRobert DreslerView Answer on Stackoverflow
Solution 18 - StringMichaelView Answer on Stackoverflow
Solution 19 - StringAnil KukadejaView Answer on Stackoverflow
Solution 20 - StringDilip JangidView Answer on Stackoverflow
Solution 21 - StringAmul4608View Answer on Stackoverflow
Solution 22 - StringLai LeeView Answer on Stackoverflow
Solution 23 - StringPaulo SilvaView Answer on Stackoverflow