как разбить строки в objective c
Как разделить строку в objective-C? Я работаю над коротким приложением, которое содержит выбор даты. Я отображаю дату, получаю ее от выбора даты и отображаю ее через метку.
мой главный вопрос в том, как я могу разделить дату на три отдельные строки? кто-нибудь знает об этом?
спасибо
4 ответов
можно использовать -[NSString componentsSeparatedByString:]
или NSScanner
разделить строку, или использовать NSCalendar
чтобы извлечь части даты, которая вас интересует.
использовать что-то вроде [yourString componentsSeparatedByString:@"/"]
. Вы получите NSArray разделенных строк.
Если вы можете отформатировать дату в определенный формат с помощью NSDateFormatter, а затем преобразовать NSDate в NSString. Компоненты можно извлечь из строки даты с помощью 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];
вы можете получить массив строк с помощью этого метода, и вы можете использовать строку tokenizer в соответствии с вашим dateformat.например", " строка tokenizer.
[myDateString componentsSeparatedByString:@","];
для разделения даты на отдельные компоненты можно использовать следующий код:
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;