Kaptam egy NSString a szerverről. Most azt akarom, hogy osztott be azt a rész, amit kell. Hogyan szét a húr?
Például:
substring1: olvasni a második karaktert 5. karakter
substring2: olvasni 10 karakter a 6. karakter.
Kaptam egy NSString a szerverről. Most azt akarom, hogy osztott be azt a rész, amit kell. Hogyan szét a húr?
Például:
substring1: olvasni a második karaktert 5. karakter
substring2: olvasni 10 karakter a 6. karakter.
Azt is osztott egy húr részkarakterláncként segítségével nSTRING féle componentsSeparatedByString módszer.
Példa a dokumentáció:
NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];
NSString van néhány módszer erre:
[myString substringToIndex:index];
[myString substringFromIndex:index];
[myString substringWithRange:range];
A dokumentációban NSString további információt.
Írtam egy kis módszert megosztani húrok egy meghatározott mennyiségű alkatrész. Vegye figyelembe, hogy csak támogat egyetlen elválasztó karaktert. De azt hiszem, ez egy hatékony módja annak, hogy hasít a 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;
}