2011-06-22 14 views

Odpowiedz

73

Można również użyć

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

Wreszcie przydatna funkcja ciągu! – Burf2000

+0

hi @Pierre, dlaczego użyłeś "lastPathComponent"? Co to znaczy? – Adela

+0

@Adela użyłem go, ponieważ jest to metoda NSString, która robi dokładnie to, o co prosiła. I, oczywiście, łatwiej jest używać metody, którą zapewnia API, niż pisać własną logikę. i oznacza dokładnie to, co mówi nazwa. Zwraca ci ostatni składnik ścieżki. Zajrzyj do https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/#//apple_ref/occ/instp/NSString/lastPathComponent po kilka przykładów napisów i zwrotów wartość. – Pierre

0

Spróbuj tego:

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

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

Korzystając objectAtIndex: 5 jesteś upewniając się, że działa tylko w tym konkretnym adresem, w przypadku zmiany adresu do czegoś podobnego http://www.abc.com/news/read/welcome-new-gig/ COŚ/03276, łamie to. – EmilioPelaez

28

Jeśli wiesz, ile znaków trzeba, można zrobić coś takiego:

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

Jeśli po prostu wiedzieć, że jest to część po ostatnim ukośniku, możesz to zrobić:

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

Jeśli znasz długość numeru, a to się nie zmieni, może być tak proste, jak :

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

strSubStringDigNum będzie miał wartość 03276

2

Jeśli ostatnia część napisu jest zawsze taka sama długość (5 znaków) możesz użyć tej metody, aby wyodrębnić ostatnią część:

- (NSString *)substringFromIndex:(NSUInteger)anIndex 

Użyj długości łańcucha, aby określić indeks początkowy.

coś takiego:

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

(kod nie testowane)

4

Od * nix wykorzystuje te same separatory ścieżkę URL będzie to ważne również.

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