1. 程式人生 > >NSCharacterSet去除字符串中的空格、刪除指定任意字符集

NSCharacterSet去除字符串中的空格、刪除指定任意字符集

lte abcd egit 技術 cte smu pre alpha eof

一.去除首尾的空格
    /** 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 = @"簡書作者:[email protected]
/* */"; 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);
技術分享

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