What is the best way to tokenize/split a NSString in Objective-C?
Found this at http://borkware.com/quickies/one?topic=NSString (useful link):
NSString *string = @"oop:ack:bork:greeble:ponies";
NSArray *chunks = [string componentsSeparatedByString: @":"];
Hope this helps!
Adam
If you just want to split a string, use -[NSString componentsSeparatedByString:]
. For more complex tokenization, use the NSScanner class.
Hey ggarber, if your tokenization needs are more complex, check out my open source Cocoa String tokenizing/parsing toolkit: TDParseKit:
http://code.google.com/p/todparsekit/
For simple splitting of strings using a delimiter char (like ':'), TDParseKit would definitely be overkill. But again, for complex tokenization needs, TDParseKit is extremely powerful/flexible.
Everyone has mentioned componentsSeparatedByString:
but you can also use CFStringTokenizer
(remember that an NSString
and CFString
are interchangeable) which will tokenize natural languages too (like Chinese/Japanese which don't split words on spaces).
I then use objectAtIndex to get the "3rd word" in the sentence: @"oop:ack:bork:greeble:ponies"
Or is there a quicker way to do this all at once?