Cry*_*ppo 53
这是一个使用String扩展的小型Swift版本:
斯威夫特3:
extension String {
var isNumber: Bool {
return !isEmpty && rangeOfCharacter(from: CharacterSet.decimalDigits.inverted) == nil
}
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特2:
extension String {
var isNumber : Bool {
get{
return !self.isEmpty && self.rangeOfCharacterFromSet(NSCharacterSet.decimalDigitCharacterSet().invertedSet) == nil
}
}
}
Run Code Online (Sandbox Code Playgroud)
cod*_*ter 49
编辑Swift 2.2:
在swift 2.2中使用 Int(yourArray[1])
var yourArray = ["abc", "94761178","790"]
var num = Int(yourArray[1])
if num != nil {
println("Valid Integer")
}
else {
println("Not Valid Integer")
}
Run Code Online (Sandbox Code Playgroud)
它会告诉你字符串是有效的整数并num包含有效Int.你可以用你的计算num.
来自docs:
如果字符串表示适合Int的整数,则返回相应的整数.这接受仅与正则表达式"[ - +]?[0-9] +"匹配的字符串.
Kyl*_*egg 43
请注意,使用Int初始化程序检查字符串/数字有限制.具体来说,最大值为2 ^ 32-1或4294967295.这可能会导致问题,因为电话号码8005551234将无法通过Int(8005551234)检查,尽管它是有效号码.
一种更安全的方法是用于NSCharacterSet检查与字符串范围内的小数集匹配的任何字符.
let number = "8005551234"
let numberCharacters = NSCharacterSet.decimalDigitCharacterSet().invertedSet
if !number.isEmpty && number.rangeOfCharacterFromSet(numberCharacters) == nil {
// string is a valid number
} else {
// string contained non-digit characters
}
Run Code Online (Sandbox Code Playgroud)
此外,将其添加到String扩展名可能很有用.
public extension String {
func isNumber() -> Bool {
let numberCharacters = NSCharacterSet.decimalDigitCharacterSet().invertedSet
return !self.isEmpty && self.rangeOfCharacterFromSet(numberCharacters) == nil
}
}
Run Code Online (Sandbox Code Playgroud)
AMT*_*rky 20
从Swift 2开始,删除了String.toInt().正在引入一个新的Int Initializer:Int(str:String)
for target in ["abc", "94761178","790"]
{
if let number = Int(target)
{
print("value: \(target) is a valid number. add one to get :\(number+1)!")
}
else
{
print("value: \(target) is not a valid number.")
}
}
Run Code Online (Sandbox Code Playgroud)
我认为最简单的解决方案是最好和最快的:
extension String {
var isNumeric : Bool {
return Double(self) != nil
}
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特3,4
extension String {
var isNumber: Bool {
let characters = CharacterSet.decimalDigits.inverted
return !self.isEmpty && rangeOfCharacter(from: characters) == nil
}
}
Run Code Online (Sandbox Code Playgroud)
我认为使用NumberFormatter是一种简单的方法:(Swift 5)
import Foundation
extension String {
var isNumeric : Bool {
return NumberFormatter().number(from: self) != nil
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
像这样的简单解决方案:
extension String {
public var isNumber: Bool {
return !isEmpty && rangeOfCharacter(from: CharacterSet.decimalDigits.inverted) == nil
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68031 次 |
| 最近记录: |