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

gxwragnw  于 2022-11-06  发布在  Swift
关注(0)|答案(5)|浏览(190)

我有一个TextField,我想验证输入的文本是否是整数。我该如何做呢?
我想写一个这样的函数:

func isStringAnInt(string: String) -> Bool {

}
zpqajqem

zpqajqem1#

字符串扩展名和计算属性

也可以向String添加计算属性。
计算属性内部的逻辑与 OOPer 描述的逻辑相同

extension String {
    var isInt: Bool {
        return Int(self) != nil
    }
}

现在你可以

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

ktca8awb2#

使用此功能

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

sbtkgmzw3#

你可以这样检查

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
}
r8xiu3jd

r8xiu3jd4#

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

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

wfsdck305#

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

相关问题