Get last path part from NSString

Hi all i want extract the last part from string which is a four digit number '03276' i:e http://www.abc.com/news/read/welcome-new-gig/03276

how can i do that.

Upvotes: 30

Views: 28416

Answers (7)

If the last part of the string is always the same length (5 characters) you could use this method to extract the last part:

- (NSString *)substringFromIndex:(NSUInteger)anIndex

Use the length of the string to determine the start index.

Something like this:

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

(Code not tested)

Upvotes: 3

Joe
Joe

Reputation: 57179

Since *nix uses the same path separators as URL's this will be valid as well.

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

Upvotes: 5

Pierre
Pierre

Reputation: 2019

You can also use

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

Upvotes: 77

Nitish
Nitish

Reputation: 14123

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

strSubStringDigNum will have the value 03276

Upvotes: 1

EmilioPelaez
EmilioPelaez

Reputation: 19912

If you know the length of the number, and it's not gonna change, it can be as easy as:

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

Upvotes: 3

Morten Fast
Morten Fast

Reputation: 6320

If you know how many characters you need, you can do something like this:

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

If you just know that it's the part after the last slash, you can do this:

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

Upvotes: 28

JDx
JDx

Reputation: 2655

Try this:

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

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

Upvotes: 0

Related Questions