Получить последнюю часть пути из NSString - PullRequest
28 голосов
/ 22 июня 2011

Привет всем, я хочу извлечь последнюю часть из строки, которая является четырехзначным числом '03276' i: e http://www.abc.com/news/read/welcome-new-gig/03276

как я могу это сделать.

Ответы [ 7 ]

75 голосов
/ 22 июня 2011

Вы также можете использовать

NSString *sub = [@"http://www.abc.com/news/read/welcome-new-gig/03276" lastPathComponent];
28 голосов
/ 22 июня 2011

Если вы знаете, сколько символов вам нужно, вы можете сделать что-то вроде этого:

NSString *string = @"http://www.abc.com/news/read/welcome-new-gig/03276";
NSString *subString = [string substringFromIndex:[string length] - 5];

Если вы просто знаете, что это часть после последней косой черты, вы можете сделать это:

NSString *string = @"http://www.abc.com/news/read/welcome-new-gig/03276";
NSString *subString = [[string componentsSeparatedByString:@"/"] lastObject];
5 голосов
/ 22 июня 2011

Поскольку * nix использует те же разделители пути, что и URL, это также будет допустимо.

[@"http://www.abc.com/news/read/welcome-new-gig/03276" lastPathComponent]
3 голосов
/ 22 июня 2011

Если последняя часть строки всегда одинаковой длины (5 символов), вы можете использовать этот метод для извлечения последней части:

- (NSString *)substringFromIndex:(NSUInteger)anIndex

Используйте длину строки для определения начального индекса.

Примерно так:

NSString *inputStr = @"http://www.abc.com/news/read/welcome-new-gig/03276";
NSString *newStr = [inputStr substringFromIndex:[inputStr length]-5];
NSLog(@"These are the last five characters of the string: %@", newStr);

(код не проверен)

3 голосов
/ 22 июня 2011

Если вы знаете длину числа, и оно не изменится, это может быть так просто:

NSString *result = [string substringFromIndex:[string length] - 4];
1 голос
/ 22 июня 2011
NSString *str = @"http://www.abc.com/news/read/welcome-new-gig/03276";  
NSArray *arr = [str componentSeparatedBy:@"gig/"];  
NSString *strSubStringDigNum = [arr objectAtIndex:1];  

strSubStringDigNum будет иметь значение 03276

0 голосов
/ 22 июня 2011

Попробуйте это:

NSString *myUrl = @"http://www.abc.com/news/read/welcome-new-gig/03276";

NSString *number = [[myUrl componentsSeparatedByString:@"/"] objectAtIndex: 5];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...