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.
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.
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:@", "];
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.
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;
}