iOS开发中我们常常需要对字符串进行出去,例如分割,通常都是有个参照物进行分割
例如: https://www.xxx.xxx?name=zhangshan
iOS需要取出zhangsan的值,就需要用参照物"name="进行分割,右边为张三,左边为其他字符串
OC自带的分割api是 componentsSeparatedByString:@"" , 以下为代码:
objectivec
NSString * str = @"https://www.xxx.xxx?name=zhangshan";
NSArray * array = [str componentsSeparatedByString:@"name="];
NSString * nameStr = array[1];
但是如果一个字符串要分割成N个字符,且没有分割参照物,这个怎么办呢?
例如:将字符串 abcdefg 分割成单个字符. OC中没有自带的api (PS:swift 中有把字符串转成数组的自带方法)
我们可以借助NSRange 的方法进行单个切割:代码如下
objectivec
#pragma mark 将字符串分割成单个字符
- (NSMutableArray *)separateString:(NSString *)str
{
NSMutableArray * resultArray = [[NSMutableArray alloc]init];
for (int i = 0; i < str.length ; i ++)
{
NSRange range = NSMakeRange(i, 1);
NSString * singleStr = [str substringWithRange:range];
//将分割好的单个字符装进数组
[resultArray addObject:singleStr];
}
return resultArray;
}
然后传入字符串就可以分割出来了
objectivec
NSString * valueStr = @"abcdefg";
NSMutableArray * valueArray = [self separateString:valueStr];
NSLog(@"valueArray==%@",valueArray);
/*
valueArray的输出为
valueArray==(
a,
b,
c,
d,
e,
f,
g
)
*/
得到单个字符的数组,就有条件进行你想要的操作了!!!
PS分割字符串,本质就是把String转成Array;
这里额外讲一个Array转成String 的方法:
NSString * arrayToStr = [valueArray componentsJoinedByString:@""];
objectivec
//数组转为字符串
NSString * arrayToStr = [valueArray componentsJoinedByString:@""];