一刀切法分为:事先补全法和事后修正法
事先补全法
要求将 @"abc ttt,kmd,uuu xyz" 用逗号或空格隔开字符串,分解成各个部分
NSString *str = @"abc ttt,kmd,uuu xyz";
//由于xyz后面没有空格或者逗号,先给他加上逗号; 在执行逻辑之前补齐不同的地方,这种做法叫做一刀切
str = [NSString stringWithFormat:@"%@,",str];
char list[20];
memcpy(list, [str cStringUsingEncoding:NSASCIIStringEncoding], [str length]);
NSString *string = @"";
NSMutableArray *lista = [NSMutableArray array];
for (int i = 0 ; i < sizeof(list) ; i++) {
char s = list[i];
if (s == ' ' || s == ',') {
[lista addObject:string];
string = @"";
}else
{
string = [NSString stringWithFormat:@"%@%c",string, s];
}
}
NSLog(@"%@",lista);
事后修正法:
把字符串@“abcdef”每个字符中间添加一个逗号
NSString *string = @"abcdef";
char list[6];
memcpy(list, [string cStringUsingEncoding:NSASCIIStringEncoding], [string length]);
NSString *str = @"";
for (int i = 0; i < sizeof(list); i++) {
char s = list[i];
str = [str stringByAppendingFormat:@",%c",s];
}
//以指定位置开始(包括指定位置的字符),并包括之后的全部字符 事后修正
str = [str substringFromIndex:1];
NSLog(@"%@",str);