从 Swift 中的字符串值中获取数字
Take number from string value in Swift
我有一个包含数字的文本值,该数字从零开始。例如 "User number 054321"
我通过下面的代码从文本中获取这个数字。
var phonenumber = "054321"
let myNumber = NSNumberFormatter().numberFromString("".join(phonenumber.componentsSeparatedByCharactersInSet(NSCharacterSet.decimalDigitCharacterSet().invertedSet)))
println(myNumber) //54321
我的问题是它从不接受以 0 值开头的第一个数字,但它接受所有其他数字。那么请问我的问题在哪里?
数字不能以 0 开头。或者至少,永远不会以 0 作为第一个字符显示。 054321 = 54321 = 0000000000054321
但最后还是 54321
。
无论如何,phone 数字不应存储为数字,而应存储为字符串,因为它可能以“0”或“+”开头。
TL;DR:如果你想在数字的开头保留你的 0,将它存储为一个字符串。
使用下面的代码从 String
中获取 Int
:
let myString : String = "123"
let myInt: Int? = myString.toInt()
if myInt != nil {
println(myInt)
}
或者如果您正在使用 Swift 2:
let myInt: Int? = Int(myString)
我有一个包含数字的文本值,该数字从零开始。例如 "User number 054321"
我通过下面的代码从文本中获取这个数字。
var phonenumber = "054321"
let myNumber = NSNumberFormatter().numberFromString("".join(phonenumber.componentsSeparatedByCharactersInSet(NSCharacterSet.decimalDigitCharacterSet().invertedSet)))
println(myNumber) //54321
我的问题是它从不接受以 0 值开头的第一个数字,但它接受所有其他数字。那么请问我的问题在哪里?
数字不能以 0 开头。或者至少,永远不会以 0 作为第一个字符显示。 054321 = 54321 = 0000000000054321
但最后还是 54321
。
无论如何,phone 数字不应存储为数字,而应存储为字符串,因为它可能以“0”或“+”开头。
TL;DR:如果你想在数字的开头保留你的 0,将它存储为一个字符串。
使用下面的代码从 String
中获取 Int
:
let myString : String = "123"
let myInt: Int? = myString.toInt()
if myInt != nil {
println(myInt)
}
或者如果您正在使用 Swift 2:
let myInt: Int? = Int(myString)