2016-02-07 2 views
0

Dans un programme que j'écris, je dois vérifier si un caractère est un espace (""). Ont actuellement ceci comme conditionnel mais cela ne fonctionne pas. Des idées? Merci d'avance.Comment vérifier si un caractère est un espace dans Swift?

for(var k = indexOfCharBeingExamined; k < lineBeingExaminedChars.count; k++){ 

    let charBeingExamined = lineBeingExaminedChars[lineBeingExaminedChars.startIndex.advancedBy(k)]; 

//operations 

    if(String(charBeingExamined) == " "){ 

    //more operations 

    } 
} 
+0

Vous devez ajouter comment charBeingExamined est déclaré et le contexte de votre code –

+0

@LeoDabus ajouté – TomLisankie

Répondre

2

Le code suivant fonctionne pour moi. Notez qu'il est plus facile de parcourir les caractères d'une chaîne en utilisant 'pour' (deuxième exemple ci-dessous):

var s = "X yz" 
for var i = 0; i < s.characters.count; i++ { 
    let x = s[s.startIndex.advancedBy(i)] 
    print(x) 
    print(String(x) == " ") 
} 

for c in s.characters { 
    print(c) 
    print(String(c) == " ") 
} 
0

Chaîne:

let origin = "Some string with\u{00a0}whitespaces" // \u{00a0} is a no-break space 

Oneliner:

let result = origin.characters.contains { " \u{00a0}".characters.contains($0) } 

Une autre approche:

let spaces = NSCharacterSet.whitespaceCharacterSet() 
let result = origin.utf16.contains { spaces.characterIsMember($0) } 

Sortie:

print(result) // true 

Je ne sais pas ce que vous voulez faire avec les espaces, car il pourrait être un peu plus simple.