美文网首页
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