iosswiftctype

How can I check to see if a string contains characters of whitespace/alphanumeric/etc?


How can you use the "ctype.h" library in Swift to be able to use isAlpha or isSpace on characters? Or is there a better, Swift, way of doing it?

This question is answered, but it doesn't seem to work: Swift: how to find out if letter is Alphanumeric or Digit

It doesn't specify how to import the library. Could someone point me in the right direction?

Here's what I've got so far:

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

Solution

  • Use NSCharacter on the entire string,not character-by-character:

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

    Output:

    whitespace found