Ios 如何比较空白字符

Ios 如何比较空白字符,ios,swift,Ios,Swift,我需要检查一个字符是否是空格,你怎么做 for (index, val) in (self.textField.text?.enumerated())! { if val == " " { // How? if index % 2 == 0 { // ... } } } 使用NSCharacterSet检查空白,包括\n、\t等 NSCharacterSet.whitespaces.contains(val.unicodeScalars.first!) 在

我需要检查一个字符是否是空格,你怎么做

for (index, val) in (self.textField.text?.enumerated())! {
  if val == " " { // How?
    if index % 2 == 0 {
      // ...
    }
  }
}

使用NSCharacterSet检查空白,包括\n、\t等

NSCharacterSet.whitespaces.contains(val.unicodeScalars.first!)

在Swift中,可以直接迭代字符串

   let phrase = "Hello, This is Test String."
        for chr in phrase {
            if chr == " " {
                print("White space")
            }
        }
取决于你要找的空间类型。对于“普通”空格(0x20),您的代码应该可以工作。但对于“特殊”空格,它不会计算为
true

给定以下字符串,其中包含不同类型的空格

let myString = "This\u{0020}text contains normal spaces\u{00a0}and\u{00a0}non-breaking\u{00a0}ones"
相比,
将找到4个实例

let result1 = myString.enumerated().filter { $0.element == " " }

print(result1)
/* 
   [(offset: 4, element: " "), 
    (offset: 9, element: " "), 
    (offset: 18, element: " "), 
    (offset: 25, element: " ")] 
*/
但也可以使用空白字符集请注意:对于其他空白类型(如换行符、制表符)也将如此

最简单的方法

var str : String = textField.stringValue
for i in 0...str.count-1{
    var spaceChr : Character = str.removeFirst() //init
    if spaceChr == " " { //doit}
}

您的解决方案在swift 4中有效。您可能需要展开可选绑定(可选绑定:if-let,guard-else)
var str : String = textField.stringValue
for i in 0...str.count-1{
    var spaceChr : Character = str.removeFirst() //init
    if spaceChr == " " { //doit}
}