У меня есть такая строка: @"10/04/2011"
и я хочу сохранить только «10» в другой строке. Как я могу это сделать?
У меня есть такая строка: @"10/04/2011"
и я хочу сохранить только «10» в другой строке. Как я могу это сделать?
Ответы:
NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"];
NSString* firstBit = [foo objectAtIndex: 0];
Обновление 3/3/2018:
Теперь, когда вопрос получил тег Swift, я должен добавить способ Swift сделать это. Это довольно просто:
let substrings = "10/04/2011".split(separator: "/")
let firstBit = substrings[0]
Хотя обратите внимание, что это дает вам массив Substring
. Если вам нужно преобразовать их обратно в обычные строки, используйтеmap
let strings = "10/04/2011".split(separator: "/").map{ String($0) }
let firstBit = strings[0]
или
let firstBit = String(substrings[0])
[foo firstObject]
может быть лучше в общем случае, потому что оно также будет правильно обрабатывать пустой массив.
Любой из этих 2:
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
Однако имейте в виду, что иногда строка даты не форматируется должным образом, и день (или месяц в этом отношении) отображается как 8, а не как 08, поэтому первое из них может быть худшим из двух решений.
Последний должен быть помещен в отдельный массив, чтобы вы могли на самом деле проверить длину возвращаемой вещи, чтобы вы не получили никаких исключений в случае поврежденной или недопустимой строки даты из любого источника, который у вас есть.
Работает нормально
NSString *dateString = @"10/10/2010";//Date
NSArray* dateArray = [dateString componentsSeparatedByString: @"/"];
NSString* dayString = [dateArray objectAtIndex: 0];
использование [myString componentsSeparatedByString:@"/"]
Я отформатировал хорошее решение, предоставленное JeremyP выше, в более общую функцию многократного использования ниже:
///Return an ARRAY containing the exploded chunk of strings
+(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter
{
return [stringToBeExploded componentsSeparatedByString: delimiter];
}