【发布时间】:2016-07-02 11:00:46
【问题描述】:
我有一个 TextField,我想验证输入的文本是否为整数。我怎么能这样做?
我想写一个这样的函数:
func isStringAnInt(string: String) -> Bool {
}
【问题讨论】:
我有一个 TextField,我想验证输入的文本是否为整数。我怎么能这样做?
我想写一个这样的函数:
func isStringAnInt(string: String) -> Bool {
}
【问题讨论】:
您还可以向String 添加计算属性。
计算属性内部的逻辑与OOPer
描述的相同
extension String {
var isInt: Bool {
return Int(self) != nil
}
}
"1".isInt // true
"Hello world".isInt // false
"".isInt // false
【讨论】:
使用此功能
func isStringAnInt(string: String) -> Bool {
return Int(string) != nil
}
【讨论】:
你可以这样检查
func isStringAnInt(stringNumber: String) -> Bool {
if let _ = Int(stringNumber) {
return true
}
return false
}
或
您可以为字符串创建一个扩展。转到文件 -> 新文件 -> Swift 文件
在你新创建的 Swift 文件中你可以写
extension String
{
func isStringAnInt() -> Bool {
if let _ = Int(self) {
return true
}
return false
}
}
这样你就可以在你的整个项目中像这样访问这个功能了
var str = "123"
if str.isStringAnInt() // will return true
{
// Do something
}
【讨论】:
isStringAnInt() 设为计算属性extension String { var isInt: Bool { if let _ = Int(self) { return true } return false } },然后您可以执行"123".isInt。
您还可以使用以下扩展方法,该方法使用与所有提到的答案不同的逻辑
extension String {
var isStringAnInt: Bool {
return !isEmpty && self.rangeOfCharacter(from: CharacterSet.decimalDigits.inverted) == nil
}
【讨论】:
if s is String {
print("Yes, it's a String")
} else if s is Int {
print("It is Integer")
} else {
//some other check
}
【讨论】: