2014-06-11 60 views
399

我正試圖解決如何在Swift中將Int轉換爲String將Int轉換爲Swift中的字符串

我想出一個解決方法,使用NSNumber,但我很想弄清楚如何在Swift中完成所有工作。

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

回答

714

轉換IntString

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

和周圍的其他方式 - 轉換StringInt

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

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

或者,如果你使用的斯威夫特2或3:

let x: Int? = Int(myString) 
+2

雖然這可行,但可以使用'toString'函數,如下面的答案中所示。 – ybakos

+1

'Int'似乎沒有'toString()'方法,至少在Xcode 6.2中沒有編輯:我看到有一個全局的'toString'方法(*** not ***'Int.toString() '),任何人都知道使用String()構造函數的優點? – Nilloc

+0

讓x:Int? = str.integerValue爲我工作 – Mashhadi

73

檢查以下答案:

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

meh,這是一個醜陋和不必要的解決方法,當'String'已經有一個構造函數接受'Int' –

+0

你發現了什麼錯誤?你爲什麼放棄投票? @GabrielePetronella – PREMKUMAR

+1

這只是實現理想結果的可怕方式。然而,答案在技術上是正確的,因此我沒有倒下。 –

6

無論出於何種原因接受的答案並沒有爲我工作。我去了這種方法:

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

是的..同樣的問題..接受的答案不工作..你的答案爲我工作.. –

18

只是爲了完整性,還可以使用:

let x = 10.description 

或支持說明任何其他值。

+3

這對我試圖顯示標籤中的值時工作。 與其他方法,它總是可選(0),而不是0. 謝謝 –

43

這裏有4種方法:

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

我可以想像,一些人將與SS的問題。但是,如果你想建立一個包含其他內容的字符串,那麼爲什麼不呢。

+3

我只是看了一些關於Swift和iOS 8的Stanford U新課程。你的'var ss =「\(x)」'例子是確切地說,他們建議如何將double轉換爲字符串。我認爲這很簡單,很棒。 – markhunte

+0

思考更多關於sass - 這真的很糟糕。 –

+1

toString已被重命名爲字符串 –

5

多種方式來做到這一點:

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

爲了節省自己的時間和麻煩,將來就可以使一個Int擴展。通常我會創建一個共享代碼文件,並在其中添加擴展名,枚舉和其他有趣的東西。下面是擴展代碼的樣子:

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

再後來,當你想一個int轉換爲字符串你可以這樣做:

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

潛在的愚蠢問題,但是這應該是一個函數還是一個計算變量?我無法記起Swift通常在這些情況下使用哪一個 - 它是「toInt」還是toInt()。 –

+0

爲了節省一些時間和麻煩,只需使用'myNumber。description'。不需要任何擴展。 – nyg

2

IAM使用這種簡單的方法

字符串INT:

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

,並從int到字符串:

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

exampleLabel.text = String(yourInt)

4

斯威夫特2:

var num1 = 4 
var numString = "56" 
var sum2 = String(num1) + numString 
var sum3 = Int(numString) 
0
let Str = "12" 
let num: Int = 0 
num = Int (str) 
1

Unicode轉換詮釋爲String

對於那些誰想要一個Int轉換爲Unicode字符串,你可以做以下:

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 

或者:

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

@jvarela,這仍然有效。我只是在Xcode 8.2(Swift 3.0.2)中重新測試了它。 'String'初始化器可以使用'UnicodeScalar'。 – Suragch

6

SWIFT 3.0這是我們如何能夠轉換IntStringStringInt

//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)! 
+0

在代碼的最後一行,爲什麼我們最後需要一個感嘆號? –

+0

@OmarTariq,因爲我們明確地告訴編譯器'integerValue'的類型是'Int'。那麼它不能有一個零值。所以編譯器會告訴你解開它。如果你想避免這種情況,可以像'let integerValue = Int(stringValue)'一樣使用它。那麼你不會有問題。這麼晚纔回復很抱歉。 –

+0

@OmarTariq在這種情況下解包可能會非常糟糕。如果字符串不是數字,將會導致應用程序崩潰。你應該確保確保它是有效的,而不是強制解包它。 –

48

在雨燕3.0

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

至字符串轉換爲詮釋

var numberA = Int("10") 

Print(numberA) // It will print 10 

隱蔽詮釋成字符串

var numberA = 10 

1路)

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

第二路)

var strSomeNumber = String(numberA) 

var strSomeNumber = "\(numberA)" 
-1

迅速3。0,下面

let a:String = String(stringInterpolationSegment: 15) 

給出你可以改變爲字符串整數另一種方式是

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

//或代替15

+1

從API參考「不要直接調用此初始值設定項,編譯器在解釋字符串插值時使用它」。也許你想仔細檢查你是否在某個地方使用它。 –

1
let a =123456888 
var str = String(a) 

OR

var str = a as! String 
任何整數
12

Swift 4

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

謝謝。什麼毫無意義的突破變化..... –