美文网首页
iOS字符串按一个或多个空格分割成字符串数组

iOS字符串按一个或多个空格分割成字符串数组

作者: Zed__ | 来源:发表于2019-04-11 11:05 被阅读0次

适用场景,多关键字搜索,用户键入一个或多个空格作为分割。

WechatIMG56.jpeg WechatIMG57.jpeg

可封装到\color{#3582b8}{NSString}类扩展里面。


@implementation NSString (Keywords)
//func
- (NSArray <NSString *>*)keywords {
    //初始化一个mutable集合用作接受每一个关键词
    NSMutableArray <NSString *>*arrM = NSMutableArray.array;
    //判断字符串内是否含有空格符
    if ([self containsString:@" "]) {
        //初始化一个可变字符串用于拼接单个字符
        NSMutableString *cm = NSMutableString.string;
        //遍历字符串内每一个字符
        for (NSInteger i = 0; i < self.length; i++) {
            //当前字符
            NSString *c = [self substringWithRange:NSMakeRange(i, 1)];
            //如果不是空格
            if (![c isEqualToString:@" "]) {
                //则拼接起来
                [cm appendString:c];
            } else {
                //如果下一个是空格并且可变字符串有值,添加元素
                if (![cm containsString:@" "] && cm.length) [arrM addObject:cm];
                //重新初始化可变字符串
                cm = NSMutableString.string;
            }
        }
        //遍历结束,可变字符串可能还包含分割的最后一段关键词,执行同样操作
        if (![cm containsString:@" "] && cm.length) [arrM addObject:cm];
    } else {
        //字符串不包含空格符,直接返回包含一个自身为元素的字符串数组
        arrM = [NSMutableArray arrayWithArray:@[self]];
    }
    //return
    return arrM.copy;
}

@end

相关文章

网友评论

      本文标题:iOS字符串按一个或多个空格分割成字符串数组

      本文链接:https://www.haomeiwen.com/subject/jbgziqtx.html