2011-06-22 5 views

Respuesta

73

También puede utilizar

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

¡Finalmente una útil función de cadena! – Burf2000

+0

Hola @Pierre, ¿por qué usaste 'lastPathComponent'? ¿Qué significa? – Adela

+0

@Adela lo usé, porque es un método de NSString que hace exactamente lo que se pidió. Y, por supuesto, es más fácil usar el método que proporciona la API que escribir tu propia lógica. y significa exactamente lo que dice su nombre. Te devuelve el último componente de una ruta. Eche un vistazo a https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/#//apple_ref/occ/instp/NSString/lastPathComponent para ver ejemplos de cadenas y el retorno valor. – Pierre

0

Prueba esto:

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

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

Mediante el uso de objectAtIndex: 5 se asegura de que sólo funciona en esa dirección específica, si la dirección cambia a algo así como http://www.abc.com/news/read/welcome-new-gig/ ALGO/03276, lo rompe. – EmilioPelaez

28

Si conoce el número de caracteres que necesita, puede hacer algo como esto:

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

Si sólo sabe que es la parte después de la última barra, usted puede hacer esto:

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

Si conoce la longitud del número, y no va a cambiar, puede ser tan fácil como :

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 tendrá el valor 03276

2

Si la última parte de la cadena es siempre la misma longitud (5 caracteres) puede usar este método para extraer la última parte:

- (NSString *)substringFromIndex:(NSUInteger)anIndex 

Utilice la longitud de la cadena para determinar el índice de inicio.

Algo como esto:

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

(Código no probado)

4

Desde * nix utiliza los mismos separadores de ruta como la URL de esta será válida también.

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