web-dev-qa-db-fra.com

Comment vérifier si une chaîne est un Int dans Swift?

J'ai un TextField que je veux vérifier si le texte entré est un entier. Comment pourrais-je faire ça?

Je veux écrire une fonction comme celle-ci:

func isStringAnInt(string: String) -> Bool {

}
15
Kasper

Extension de chaîne et propriété calculée

Vous pouvez également ajouter à String une propriété calculée.

La logique à l'intérieur de la propriété calculée est la même que celle décrite par OOPer

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

Maintenant vous pouvez

"1".isInt // true
"Hello world".isInt // false
"".isInt // false
28
Luca Angeletti

Utilisez cette fonction

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

Vous pouvez vérifier comme ça

func isStringAnInt(stringNumber: String) -> Bool {

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

OR

vous pouvez créer une extension pour String. Allez dans Fichier -> Nouveau fichier -> Swift File

Et dans votre nouveau fichier Swift, vous pouvez écrire

extension String
{
    func isStringAnInt() -> Bool {

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

De cette façon, vous pourrez accéder à cette fonction dans l'ensemble de votre projet comme celui-ci

var str = "123"
if str.isStringAnInt() // will return true
{
 // Do something
}
1
Umair Afzal
if s is String {
  print("Yes, it's a String")
} else if s is Int {
  print("It is Integer")
} else {
  //some other check
}
0
Taqi Ahmed