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

Wie kann ich die Zeichenposition des 4. "/" erhalten?NSString Zeichenposition

+0

Was Sie mit 4. "/" meinen, ist das 4. Zeichen nicht "/". Oder wenn du das 4. "/" in allem "/" meinst, was dem letzten "/ ask" entspricht – vodkhang

+0

ja das letzte "/ ask" – Fasid

Antwort

29

tun, wenn Sie nur versuchen, den letzten Teil der URL zu erhalten, sollten Sie in der Lage sein, dies zu nutzen :

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

Um den Index des letzten Zeichen '/' zu erhalten:

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

den Indexwert erhalten aus range.location

Um den Index des vierten Zeichen ‚/‘ aus der URL zu finden:

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

ich brauche den index aber thx – Fasid

+0

es ist nicht immer der letzte Eins, es ist das 4. – Fasid

0

Ich edited meine Antwort nach dem Verständnis Ihres Problems.

Die Antwort von Hitesh es fast richtig, man muss nur ein wenig mehr

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

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

Normalerweise muss man den Index nicht des Schreibens/bekommen. Sie können einfach viele Komfortmethoden verwenden, die in NSURL definiert sind, siehe this Apple reference. Ich würde tun

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

eine andere Art und Weise Sie

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

hoffen, dass es helfen können!

+0

Ich habe gerade versucht herauszufinden, wie man manuell "logische" Zeilenumbrüche an einer Zeichenkette durchführt (dh an einer Leerstelle bricht), um eine Zeichenkette in mehreren CCLabelTTF-Blöcken auszuspucken, und das war genau das, was ich brauchte, Vielen Dank! – redux

+0

das sollte akzeptiert werden antwort ... –