2011-06-22 6 views

Répondre

73

Vous pouvez également utiliser

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

Enfin une fonction de chaîne utile! – Burf2000

+0

hi @Pierre, pourquoi avez-vous utilisé 'lastPathComponent'? Ce que cela veut dire? – Adela

+0

@Adela je l'ai utilisé, parce que c'est une méthode de NSString qui fait exactement ce qui a été demandé. Et, bien sûr, il est plus facile d'utiliser la méthode fournie par l'API que d'écrire sa propre logique. et signifie exactement ce que le nom dit. Il vous renvoie le dernier composant d'un chemin. Jetez un oeil à https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/#//apple_ref/occ/instp/NSString/lastPathComponent pour quelques exemples de chaînes et le retour valeur. – Pierre

0

Essayez ceci:

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

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

En utilisant objectAtIndex: 5 vous en vous assurant qu'il ne fonctionne que dans cette adresse spécifique, si les changements d'adresse à quelque chose comme http://www.abc.com/news/read/welcome-new-gig/ Quelque chose/03276, il le brise. – EmilioPelaez

28

Si vous savez combien de caractères dont vous avez besoin, vous pouvez faire quelque chose comme ceci:

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

Si vous savez que c'est la partie après la dernière barre oblique, vous pouvez le faire:

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

Si vous connaissez la longueur du nombre, et il ne va pas changer, il peut être aussi facile que :

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 aura la valeur 03276

2

Si la dernière partie de la chaîne est toujours la même longueur (5 caractères) vous pouvez utiliser cette méthode pour extraire la dernière partie:

- (NSString *)substringFromIndex:(NSUInteger)anIndex 

Utilisez la longueur de la chaîne pour déterminer l'index de départ.

Quelque chose comme ceci:

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 non testé)

4

Depuis * nix utilise les mêmes séparateurs de chemin comme URL ce sera valable aussi bien.

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