问题
How to split a string in objective-C? I am working on an short application that contains a date picker. I do display date get it from date picker and display it through a label.
My main question is that how can I split the the date in to three separate strings? any one has idea about it?
Thanks
回答1:
You could use -[NSString componentsSeparatedByString:] or NSScanner to split the string, or use NSCalendar to extract the pieces of the date you're interested in.
回答2:
Use something like [yourString componentsSeparatedByString:@"/"]
. You will get an NSArray of separated strings.
回答3:
If you can format date into specific format using NSDateFormatter and then convert NSDate into NSString. You can extract components from date string using componentsSeparatedByString.
NSDate *myDate = datePicker.date;//if you are getting date from date picker
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"cccc, MMM d, hh:mm aa"];//you can use any date format also
NSString *myDateString = [dateFormat stringFromDate:myDate];
You can get array of string by using this method and you can use string tokenizer according to your dateformat.for example "," string tokenizer.
[myDateString componentsSeparatedByString:@","];
回答4:
You can use following code to split the date into separate components:
NSDate *inputDate = [NSDate date]; //assign the value selected from date picker
NSCalendar* calendar = [NSCalendar currentCalendar];
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents* componentObj = [calendar components:unitFlags fromDate:inputDate];
NSInteger day = componentObj.day;
NSInteger month = componentObj.month;
NSInteger year = componentObj.year;
来源:https://stackoverflow.com/questions/5095349/how-to-split-strings-in-objective-c