如何检查字符是否是Swift中的空格字符?

时间:2016-02-07 22:31:20

标签: string swift character spaces

在我写的一个程序中,我需要检查一个角色是否是一个空格("")。目前将此作为条件,但它不起作用。有任何想法吗?提前谢谢。

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

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

//operations

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

    //more operations

    }
}

5 个答案:

答案 0 :(得分:3)

以下代码适用于我。请注意,使用&#39; for#39;迭代字符串中的字符会更容易。 (下面的第二个例子):

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) == " ")
}

答案 1 :(得分:1)

<强>字符串:

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) }

另一种方法:

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

<强>输出:

print(result) // true

不确定你想用空格做什么,因为它可能会更简单一点。

答案 2 :(得分:1)

下面的代码是我如何用Swift中的函数方法解决这个问题。我做了一个扩展(实际上是两个),但你可以很容易地把这个函数的内容用到其他地方。

{{1}}

答案 3 :(得分:0)

只需在代码中进行更改“” -> “ \ u {00A0}”

for(var k = indexOfCharBeingExamined; k < lineBeingExaminedChars.count; k++){
    let charBeingExamined = lineBeingExaminedChars[lineBeingExaminedChars.startIndex.advancedBy(k)];
    if(String(charBeingExamined) == "\u{00A0}"){
        //more operations
    }
}

答案 4 :(得分:0)

要仅测试空白:

if collide:
    ball_x -= ball_x_change   

要同时测试空格和空字符串:

if collide:
    ball_x -= ball_x_change
    ball_x_change = -ball_x_change