2009-02-27 7 views
80

Ich habe einen NString vom Server erhalten. Jetzt möchte ich es in den Teilstring aufteilen, den ich brauche. Wie wird die Zeichenfolge aufgeteilt?Wie teilt man String in Teilstrings auf iOS?

Zum Beispiel:

substring1: von dem zweiten Zeichen 5. Zeichen lesen

substring2: lesen 10 Zeichen vom 6. Zeichen.

+1

Sie sollten iPhone zu iOS ändern. – Ricardo

Antwort

207

Sie können eine Zeichenfolge auch mit einer Teilzeichenfolge teilen, indem Sie die Methode componentsSeparatedByString von NString verwenden.

Beispiel aus der Dokumentation:

NSString *list = @"Norman, Stanley, Fletcher"; 
NSArray *listItems = [list componentsSeparatedByString:@", "]; 
+0

Kann ich Strings teilen, deren einzelne Marken unterschiedlich sind? z.B. @ "A, B^C ~ D" –

+6

Sie sollten NSStrings "componentsSeparatedByCharactersInSet:" verwenden können, um mehrere Zeichen zu teilen. – codelogic

+0

Great Work man ..! danke –

37

NSString hat einige mögliche Vorgehensweisen:

[myString substringToIndex:index]; 
[myString substringFromIndex:index]; 
[myString substringWithRange:range]; 

Überprüfen Sie die Dokumentation für NSString für weitere Informationen.

0

Ich schrieb ein wenig Methode Zeichenfolgen in einer bestimmten Menge Teile aufzuspalten. Beachten Sie, dass nur einzelne Trennzeichen unterstützt werden. Aber ich denke, es ist eine effiziente Möglichkeit, einen NSString zu teilen.

//split string into given number of parts 
-(NSArray*)splitString:(NSString*)string withDelimiter:(NSString*)delimiter inParts:(int)parts{ 
    NSMutableArray* array = [NSMutableArray array]; 

    NSUInteger len = [string length]; 
    unichar buffer[len+1]; 

    //put separator in buffer 
    unichar separator[1]; 
    [delimiter getCharacters:separator range:NSMakeRange(0, 1)]; 

    [string getCharacters:buffer range:NSMakeRange(0, len)]; 

    int startPosition = 0; 
    int length = 0; 
    for(int i = 0; i < len; i++) { 

     //if array is parts-1 and the character was found add it to array 
     if (buffer[i]==separator[0] && array.count < parts-1) { 
      if (length>0) { 
       [array addObject:[string substringWithRange:NSMakeRange(startPosition, length)]]; 

      } 

      startPosition += length+1; 
      length = 0; 

      if (array.count >= parts-1) { 
       break; 
      } 

     }else{ 
      length++; 
     } 

    } 

    //add the last part of the string to the array 
    [array addObject:[string substringFromIndex:startPosition]]; 

    return array; 
} 
Verwandte Themen