J'ai besoin de vérifier si un personnage est un espace, comment faites-vous cela?
for (index, val) in (self.textField.text?.enumerated())! {
if val == " " { // How?
if index % 2 == 0 {
// ...
}
}
}
4 réponses
Utilisez NSCharacterSet pour vérifier les espaces blancs, y compris \ n, \ t, etc.
NSCharacterSet.whitespaces.contains(val.unicodeScalars.first!)
Dépend du type d ' espace que vous recherchez. Pour les espaces "normaux" (0x20), votre code devrait fonctionner. Mais il ne sera pas évalué à true
pour les espaces "spéciaux".
Étant donné la chaîne suivante, qui contient différents types d'espaces,
let myString = "This\u{0020}text contains normal spaces\u{00a0}and\u{00a0}non-breaking\u{00a0}ones"
La comparaison avec " "
aboutira à la recherche de 4 occurrences
let result1 = myString.enumerated().filter { $0.element == " " }
print(result1)
/*
[(offset: 4, element: " "),
(offset: 9, element: " "),
(offset: 18, element: " "),
(offset: 25, element: " ")]
*/
Mais vous pouvez également utiliser le CharacterSet d'espaces. Attention : ceci sera également évalué à vrai pour les autres types d'espaces (comme les sauts de ligne, les tabulations).
let result2 = myString.unicodeScalars.enumerated().filter {
CharacterSet.whitespaces.contains($0.element)
}
print(result2)
/*
[(offset: 4, element: " "),
(offset: 9, element: " "),
(offset: 18, element: " "),
(offset: 25, element: " "),
(offset: 32, element: "\u{00A0}"),
(offset: 36, element: "\u{00A0}"),
(offset: 49, element: "\u{00A0}")]
*/
Moyen le plus simple
var str : String = textField.stringValue
for i in 0...str.count-1{
var spaceChr : Character = str.removeFirst() //init
if spaceChr == " " { //doit}
}
Dans Swift, vous pouvez itérer directement sur une chaîne
let phrase = "Hello, This is Test String."
for chr in phrase {
if chr == " " {
print("White space")
}
}
De nouvelles questions
ios
iOS est le système d'exploitation mobile fonctionnant sur Apple iPhone, iPod touch et iPad. Utilisez cette balise [ios] pour les questions liées à la programmation sur la plate-forme iOS. Utilisez les balises associées [objective-c] et [swift] pour les problèmes spécifiques à ces langages de programmation.