我需要检查一个角色是否是一个空格,你是怎么做到的?
for (index, val) in (self.textField.text?.enumerated())! {
if val == " " { // How?
if index % 2 == 0 {
// ...
}
}
}
答案 0 :(得分:1)
在Swift中,您可以直接遍历String
let phrase = "Hello, This is Test String."
for chr in phrase {
if chr == " " {
print("White space")
}
}
答案 1 :(得分:1)
取决于您正在寻找的空间的类型。对于"正常"空格(0x20)你的代码应该工作。但它不会评价为true
以及#34;特殊"空格。
给定以下字符串,其中包含不同类型的空格
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: " ")]
*/
但您也可以使用空白字符集。 请注意:对于其他空白类型(例如换行符,制表符),这也将评估为true。
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}")]
*/
答案 2 :(得分:0)
使用NSCharacterSet检查空格,包括\ n,\ t等
NSCharacterSet.whitespaces.contains(val.unicodeScalars.first!)
答案 3 :(得分:0)
最简单的方法
var str : String = textField.stringValue
for i in 0...str.count-1{
var spaceChr : Character = str.removeFirst() //init
if spaceChr == " " { //doit}
}