如果NSString在Swift中是Numeric,则扩展为测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果NSString在Swift中是Numeric,则扩展为测试相关的知识,希望对你有一定的参考价值。
可以使用以下命令测试String中的String是否为数字:
extension String {
var isNumber: Bool {
return !isEmpty && rangeOfCharacter(from: CharacterSet.decimalDigits.inverted) == nil
}
}
有没有类似的方法来检查NSString
是否是数字?我已经玩过上面但是无法编译任何东西。
答案
您需要检查长度是否大于0以及范围位置是否等于NSNotFound:
extension NSString {
var isNumber: Bool {
return length > 0 && rangeOfCharacter(from: CharacterSet.decimalDigits.inverted).location == NSNotFound
}
}
("1" as NSString).isNumber // true
("a" as NSString).isNumber // false
另一答案
根据Apple的文档:
字符串是一系列字符,例如“Swift”,它们形成一个集合。 Swift中的字符串是Unicode正确且区域设置不敏感,并且设计为高效。 String类型与Objective-C类NSString桥接,并提供与字符串一起使用的C函数的互操作性。
所以你可以输入强制转换并使用相同的方法。
另一答案
您可以在扩展中创建功能
extension NSString {
func isNumber() -> Bool {
let str: String = self as String
return Int(str) != nil || Double(str) != nil
}
}
let x: NSString = "32" x.isNumber() // true
以上是关于如果NSString在Swift中是Numeric,则扩展为测试的主要内容,如果未能解决你的问题,请参考以下文章