如何检查string是否包含空格/字母数字/ etc的字符?
如何在Swift中使用“ctype.h”库来在字符上使用isAlpha
或isSpace
? 还是有更好的,迅速的方法呢?
这个问题被回答,但它似乎不工作: 斯威夫特:如何找出如果字母是字母数字或数字
它没有指定如何导入库。 有人能指出我正确的方向吗?
这是迄今为止我所得到的:
extension String { subscript (i : Int) -> String { return String(Array(self)[i]) } } let whitespace = NSCharacterSet.whitespaceCharacterSet() let phrase = "Test case" for var i=0; i<countElements(phrase); i++ { if whitespace.characterIsMember(phrase[i]) { //error println("char is whitespace") } }
在整个string上使用NSCharacter,而不是逐个字符:
let whitespace = NSCharacterSet.whitespaceCharacterSet() let phrase = "Test case" let range = phrase.rangeOfCharacterFromSet(whitespace) // range will be nil if no whitespace is found if let test = range { println("whitespace found") } else { println("whitespace not found") }
输出:
whitespace found
我创build了一个string扩展,完成这个,希望它是有用的。
extension String { func containsWhiteSpace() -> Bool { // check if there's a range for a whitespace let range = self.rangeOfCharacterFromSet(.whitespaceCharacterSet()) // returns false when there's no range for whitespace if let _ = range { return true } else { return false } } }
较短的延伸(swift 3)
extension String { var containsWhitespace : Bool { return(self.rangeOfCharacter(from: .whitespacesAndNewlines) != nil) } }