Wie String in Teilstrings auf iOS teilen?

stimmen
80

Ich erhielt eine NSString vom Server. Jetzt möchte ich es in die Teilkette spalten ich brauche. Wie die Zeichenfolge aufgeteilt?

Beispielsweise:

substring1: von dem zweiten Zeichen 5. Zeichen lesen

substring2: Lesen Sie 10 Zeichen vom 6. Zeichen.

Veröffentlicht am 27/02/2009 um 10:17
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
211

Sie können auch eine Reihe von einem Teil geteilt, nSTRING der mit componentsSeparatedByString Methode.

Beispiel aus der Dokumentation:

NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];
Beantwortet am 27/02/2009 um 10:43
quelle vom benutzer

stimmen
38

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.

Beantwortet am 27/02/2009 um 10:20
quelle vom benutzer

stimmen
0

Ich schrieb eine wenig Methode, um Strings in einer bestimmten Menge von Teilen aufgeteilt. Beachten Sie, dass es nur einzelne Trennzeichen unterstützt. Aber ich denke, es ist ein effizienter Weg, um eine NSString zu spalten.

//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;
}
Beantwortet am 13/12/2016 um 10:24
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more