利用NSCharacterSet去除字符串中的空格、删除指定\任意字符集

一.去除首尾的空格
    /** 1.去除首尾的空格*/
    NSString *strMsg=@"  简书作者:CoderZb   ";
    NSString *strResult = [strMsg stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    NSLog(@"去除空格前:%@",strMsg);
    NSLog(@"去除空格后:%@",strResult);
去除首尾空格.png

二.去除连续的字符集
    /** 2.去除指定的字符集*/    
    NSString *strMsg2=@"简书作者:CoderZb";
    id cs= [NSCharacterSet characterSetWithCharactersInString:@"简书作者:"];
    NSString *strResult2=[strMsg2 stringByTrimmingCharactersInSet:cs];
    NSLog(@"去除之后的结果:%@",strResult2);
去除连续的字符集.png

三.去除任意的字符集(连续、非连续都可)
    /** 3.删除任意的字符集*/
    NSString *strMsg=@"简书作者:CoderZb";
    NSCharacterSet *cs= [NSCharacterSet characterSetWithCharactersInString:@"简者Cdb"];
    NSMutableString *theString=[NSMutableString stringWithString:strMsg];// 将strMsg变为可变字符串
    NSString *strResult= [self clearnIllegitCharacters:theString andCharacterSet:cs];
    NSLog(@"删除任意的字符集的结果:%@",strResult);

// 清除敏感词语
- (NSString *)clearnIllegitCharacters:(NSMutableString *)originString andCharacterSet:(NSCharacterSet *)cs{
    
    NSString *strResult=nil;
    NSRange range2;
    do {
        range2=[originString rangeOfCharacterFromSet:cs options:NSLiteralSearch];
        if (range2.location!=NSNotFound) {// range2.location不为NSNotFound,就执行{}
            
            // [originString deleteCharactersInRange:range2];// 删除range2代表的字符集
            [originString replaceCharactersInRange:range2 withString:@"*"];// 用星号替换掉range2代表的字符集
        }
    } while (range2.location!=NSNotFound);// range2.location不为NSNotFound,就执行do{},直至等于NSNotFound,就不再执行do{}
    
    // 可变字符串变为不可变
    strResult=[[NSString alloc] initWithString:originString];
    
    return strResult;
    
    
}

[originString replaceCharactersInRange:range2 withString:@""];// 用星号替换掉range2代表的字符集*

用*替换掉字符集.png

[originString deleteCharactersInRange:range2];// 删除range2代表的字符集

删除任意的字符集.png

四.字符串分割(常用)方式1:
    #define kAlphaNum @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"

    NSString *str = @"简书作者:Coder#Z@b";
    NSCharacterSet *cs;
    // invertedSet方法是取反字符。所以cs的值为:除了kAlphaNum里的字符,其余的任何字符都是cs
    cs = [[NSCharacterSet characterSetWithCharactersInString:kAlphaNum] invertedSet];
    // 将str按cs分割成数组(既然能分割,说明cs是str的子集,并且cs中的字符不会在str中出现,相当于str中删除了这些字符),最后将数组按照@""分割成字符串
    NSString *filtered = [[str componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
    NSLog(@"字符串->数组->字符串   %@", filtered);
字符串->数组->字符串.png

四.字符串分割(常用)方式2:

    NSString *str = @"简书作者:Coder#Z@b";
    //按@"#简书@作者:"将str分离成数组,然后将数组按@"-"拼接成字符串
    NSString *filtered = [[str componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"#简书@作者:"]] componentsJoinedByString:@"-"]; 
    NSLog(@"%@", filtered);
字符串分割(常用)方式2.png

参考链接:http://blog.sina.com.cn/s/blog_7b9d64af0101i9g0.html
参考链接:http://blog.csdn.net/lcl130/article/details/41802623
参考链接:http://blog.sina.com.cn/s/blog_897dd7be0100teh6.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在此特此声明:一下所有链接均来自互联网,在此记录下我的查阅学习历程,感谢各位原创作者的无私奉献 ! 技术一点一点积...
    远航的移动开发历程阅读 13,889评论 12 197
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,823评论 25 709
  • 前些日子从@张鑫旭微博处得一份推荐(Front-end-tutorial),号称最全的资源教程-前端涉及的所有知识...
    谷子多阅读 9,773评论 0 44
  • 总觉得,内心美好的人,拒绝不了爱这个字。 有人说爱一人择一城,他说的是爱情,因为爱情而逃离又定居一座城,而我说的,...
    舒沛阅读 2,507评论 0 0
  • 海棠社第67社 主题:咏兰 文/寒霜 【原创】 调笑令·兰 兰朵,兰朵,附上茎端袅娜。 佳节添香增柔,万家厅前独幽...
    刘寒霜阅读 2,900评论 19 17