2010-09-03 13 views
13
NSString *url = @"http://stackoverflow.com/questions/ask"; 

¿Cómo puedo obtener la posición del carácter de la 4ta "/"?NSString character position

+0

Lo que quiere decir con 4th "/", primero el 4to carácter no es "/". O si te refieres al 4to "/" en todo "/", que corresponde al último "/ pregunta" – vodkhang

+0

sí el último "/ pregunta" – Fasid

Respuesta

29

Si usted está tratando de obtener la última parte de la URL, usted debería ser capaz de utilizar este :

NSArray* items = [url componentsSeparatedByString:@"/"]; 

Para obtener el índice del último carácter '/':

NSRange range = [url rangeOfString:@"/" options:NSBackwardsSearch]; 

obtener el valor del índice de range.location

Para hallar el índice del cuarto carácter '/' de la url:

int count = 0; 
int index = -1; 
for (unsigned int i=0; i < [url length]; ++i) { 
    if ([url characterAtIndex:i] == '/') { 
     ++count; 
     if (count == 4) { 
      index = i; 
      break; 
     } 
    } 
} 
+0

necesito obtener el índice pero thx – Fasid

+0

no siempre es el último uno, es el 4to – Fasid

0

He editado mi respuesta después de comprender su problema.

La respuesta de Hitesh casi correcta, sólo tiene que hacer un poco más

NSArray* items = [url componentsSeparatedByString:@"/"]; 

if ([items count] > 4) { 
    NSString *string = [items objectAtIndex:4]; 
} 
7

Por lo general, no tienen que obtener el índice de la carta /. Puede usar muchos métodos de conveniencia definidos en NSURL, ver this Apple reference. Haría

NSURL* url=[NSURL URLWithString:@"http://stackoverflow.com/questions/ask"]; 
    NSString* last=[url lastPathComponent]; // last is now @"ask" 
5

otra manera se puede utilizar

[url rangeOfString:@"/" options:NSBackwardsSearch].location 

espero que ayude!

+0

Estaba tratando de descubrir cómo hacer linebreaks "lógicos" manualmente en una cadena (es decir, romper en un espacio) para escupir una cadena en múltiples bloques CCLabelTTF, y esto era exactamente lo que necesitaba, ¡Gracias! – redux

+0

esto debe aceptarse respuesta ... –