What's the best way to trim whitespace from a string in Cocoa Touch?

cocoa-touch, objective-c, string, whitespace

Solution

You're using whitespaceAndNewlineCharacterSet, good. But instead of using scanUpToCharactersFromSet, why not use stringByTrimmingCharactersInSet? Something like this...

strResult = [strResult stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

EDIT: Didn't realize you already found stringByTrimmingCharactersInSet until after I posted this.

Problem

I'm looking to determine whether a string value from a user input (UITextField) is "blank" if it's not nil. Checking if `[textField.text isEqualToString:""]` isn't quite enough because I want to avoid any blank/whitespace input (like say a few space characters). There does seem to be an indication of a good solution for my particular problem in this StOv post. Basically it goes something like this, but I suspect there has to (or ought to) be a better way: ``` NSString *strResult; NSScanner* scanner = [NSScanner scannerWithString:textField.text]; BOOL hasValidChars = [scanner scanUpToCharactersFromSet:[NSCharacterSet whitespaceAndNewlineCharacterSet] intoString:&strResult]; // if hasValidChars == YES, we've got nonwhite space chars collected into strResult ``` This clearly only works for my particular circumstance, and even then it would fail if the first character was a space but the data I wanted followed. So, I realize I've been a little spoiled by Ruby, but there must be a tried and true idiom for trimming strings in Cocoa. Aaaand the answer is already out there, my apologies: NSString's `-stringByTrimmingCharactersInSet:` would do it: Returns a new string made by removing from both ends of the receiver characters contained in a given character set. I'm still curious to hear if anybody has other/preferred ways of doing this.

Original source

Related problems