从Swift中的字符串值中取数字

时间:2015-09-15 08:24:27

标签: ios swift nsnumber nsnumberformatter

我有一个带有数字的文本值,该数字从零开始。例如"User number 054321",我会通过下面的代码从文本中获取此数字。

var phonenumber = "054321"

let myNumber = NSNumberFormatter().numberFromString("".join(phonenumber.componentsSeparatedByCharactersInSet(NSCharacterSet.decimalDigitCharacterSet().invertedSet)))

println(myNumber) //54321

我的问题是它从不接受以0值开头的第一个数字,但它接受所有其他数字。那么请问我的问题在哪里?

2 个答案:

答案 0 :(得分:1)

数字不能以0开头。或者至少,永远不会显示0作为第一个字符。 054321 = 54321 = 0000000000054321但最后,它仍然是54321

无论如何,电话号码不应该存储为数字而应存储为字符串,因为它可能以“0”或“+”开头。

TL; DR:如果您希望将0保留在数字的开头,请将其存储为字符串。

答案 1 :(得分:0)

使用以下代码从Int获取String

let myString : String = "123"
let myInt: Int? = myString.toInt()

if myInt != nil {
    println(myInt)
}

或者如果您使用的是Swift 2:

let myInt: Int? = Int(myString)