Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Split an NSString to access one particular piece

I have a string like this: @"10/04/2011" and I want to save only the "10" in another string. How can I do that?

like image 900
cyclingIsBetter Avatar asked Sep 27 '22 14:09

cyclingIsBetter


2 Answers

NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"];
NSString* firstBit = [foo objectAtIndex: 0];

Update 7/3/2018:

Now that the question has acquired a Swift tag, I should add the Swift way of doing this. It's pretty much as simple:

let substrings = "10/04/2011".split(separator: "/")
let firstBit = substrings[0]

Although note that it gives you an array of Substring. If you need to convert these back to ordinary strings, use map

let strings = "10/04/2011".split(separator: "/").map{ String($0) }
let firstBit = strings[0]

or

let firstBit = String(substrings[0])
like image 375
JeremyP Avatar answered Oct 28 '22 00:10

JeremyP


Either of these 2:

NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];

Though keep in mind that sometimes a date string is not formatted properly and a day ( or a month for that matter ) is shown as 8, rather than 08 so the first one might be the worst of the 2 solutions.

The latter should be put into a separate array so you can actually check for the length of the thing returned, so you do not get any exceptions thrown in the case of a corrupt or invalid date string from whatever source you have.

like image 36
Antwan van Houdt Avatar answered Oct 28 '22 00:10

Antwan van Houdt