如何在Swift中检查字符串是否为Int?

如何在Swift中检查字符串是否为Int?,swift,swift2,Swift,Swift2,我有一个文本字段,我想验证输入的文本是否为整数。我怎么能这样做 我想写一个这样的函数: func isStringAnInt(string: String) -> Bool { } 使用此功能 func isStringAnInt(string: String) -> Bool { return Int(string) != nil } 你可以这样检查 func isStringAnInt(stringNumber: String) -> Bool {

我有一个文本字段,我想验证输入的文本是否为整数。我怎么能这样做

我想写一个这样的函数:

func isStringAnInt(string: String) -> Bool {

}
使用此功能

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
}
字符串扩展名&计算属性 您还可以向
字符串中添加计算属性

computed属性中的逻辑与OOPer描述的相同

现在你可以
您还可以使用以下扩展方法,该方法使用的逻辑与所有提到的答案不同

extension String  {
    var isStringAnInt: Bool {
        return !isEmpty && self.rangeOfCharacter(from: CharacterSet.decimalDigits.inverted) == nil
    }

@如果有什么问题,请编辑我的答案,这样我也可以学习。做了一些编辑。您可能希望使
isStringAnInt()
成为一个计算属性
扩展字符串{var isInt:Bool{如果让{Int(self){return true}return false}
,那么您可以执行
“123”。isInt
。这比接受的答案更快,因此应该被接受。是的。最干净的回答此代码返回正确的结果,但问题是针对函数提出的,而此代码不是函数。
"1".isInt // true
"Hello world".isInt // false
"".isInt // false
if s is String {
  print("Yes, it's a String")
} else if s is Int {
  print("It is Integer")
} else {
  //some other check
}
extension String  {
    var isStringAnInt: Bool {
        return !isEmpty && self.rangeOfCharacter(from: CharacterSet.decimalDigits.inverted) == nil
    }