如何检查String是否是Swift中的Int?

时间:2016-07-02 11:00:47

标签: swift swift2

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

我想写一个这样的函数:

func isStringAnInt(string: String) -> Bool {

}

5 个答案:

答案 0 :(得分:26)

字符串扩展&计算财产

您还可以向String添加计算属性。

  

计算属性中的逻辑与 OOPer

描述的逻辑相同
extension String {
    var isInt: Bool {
        return Int(self) != nil
    }
}

现在你可以

"1".isInt // true
"Hello world".isInt // false
"".isInt // false

答案 1 :(得分:21)

使用此功能

func isStringAnInt(string: String) -> Bool {
    return Int(string) != nil
}

答案 2 :(得分:1)

你可以这样检查

func isStringAnInt(stringNumber: String) -> Bool {

    if let _ = Int(stringNumber) {
        return true
    }
    return false
}

OR

您可以为String创建扩展名。转到文件 - >新文件 - > 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
}

答案 3 :(得分:0)

if s is String {
  print("Yes, it's a String")
} else if s is Int {
  print("It is Integer")
} else {
  //some other check
}

答案 4 :(得分:0)

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

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