Dostal jsem NSString ze serveru. Teď chci, aby ji rozdělit do dílčího potřebuji. Jak rozdělit řetězec?
Například:
substring1: čtení z druhého znaku na 5. charakteru
substring2: čtení 10 znaků ze 6. charakter.
Dostal jsem NSString ze serveru. Teď chci, aby ji rozdělit do dílčího potřebuji. Jak rozdělit řetězec?
Například:
substring1: čtení z druhého znaku na 5. charakteru
substring2: čtení 10 znaků ze 6. charakter.
Můžete také rozdělit řetězec pomocí dílčího pomocí nSTRING je componentsSeparatedByString metodu.
Příklad z dokumentace:
NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];
NSString má několik metod pro toto:
[myString substringToIndex:index];
[myString substringFromIndex:index];
[myString substringWithRange:range];
Zkontrolujte dokumentaci k NSString pro více informací.
Napsal jsem trochu metodu rozdělit řetězce ve stanoveném množství dílů. Všimněte si, že podporuje pouze jednotlivé znaky oddělovače. Ale myslím, že je to účinný způsob, jak rozdělit NSString.
//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;
}