从NSString获取最后一个路径部分

时间:2011-06-22 12:53:42

标签: iphone nsstring

大家好我想从字符串中提取最后一部分,这是一个四位数字'03276'i:e http://www.abc.com/news/read/welcome-new-gig/03276

我该怎么做。

7 个答案:

答案 0 :(得分:75)

您也可以使用

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

答案 1 :(得分:28)

如果您知道需要多少个字符,可以执行以下操作:

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];

答案 2 :(得分:5)

由于* nix使用与URL相同的路径分隔符,因此也是有效的。

[@"http://www.abc.com/news/read/welcome-new-gig/03276" lastPathComponent]

答案 3 :(得分:3)

如果您知道号码的长度,并且它不会改变,它可以像以下一样简单:

NSString *result = [string substringFromIndex:[string length] - 4];

答案 4 :(得分:3)

如果字符串的最后一部分长度始终相同(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);

(未经过测试的代码)

答案 5 :(得分:1)

NSString *str = @"http://www.abc.com/news/read/welcome-new-gig/03276";  
NSArray *arr = [str componentSeparatedBy:@"gig/"];  
NSString *strSubStringDigNum = [arr objectAtIndex:1];  

strSubStringDigNum 的值为03276

答案 6 :(得分:0)

试试这个:

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

NSString *number = [[myUrl componentsSeparatedByString:@"/"] objectAtIndex: 5];