• 去空格 whitespaceAndNewlineCharacterSet和过滤字符串


     一、过滤字符串

      可以使用stringByTrimmingCharactersInSet函数过滤字符串中的特殊符号

      首先自己定义一个NSCharacterSet, 包含需要去除的特殊符号

    NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"@/:;()¥「」"、[]{}#%-*+=_//|~<>$€^•'@#$%^&*()_+'/"""];
    
    
    
    由于NSString中有全角符号和半角符号, 因此有些符号要包括全角和半角的
    
    
    
    然后调用stringByTrimmingCharactersInSet
    
    
    
    NSString *trimmedString = [string stringByTrimmingCharactersInSet:set];
    
    
    
    trimmedString就是过滤后的字符串

    二、去除空格

      1.去掉两端的空格

      1 [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]   

      2.去掉多余的空格

    1 NSString *str = @"    this     is a    test    .   ";  
    2       
    3     NSCharacterSet *whitespaces = [NSCharacterSet whitespaceCharacterSet];  
    4     NSPredicate *noEmptyStrings = [NSPredicate predicateWithFormat:@"SELF != ''"];  
    5       
    6     NSArray *parts = [str componentsSeparatedByCharactersInSet:whitespaces];  
    7     NSArray *filteredArray = [parts filteredArrayUsingPredicate:noEmptyStrings];  
    8     str = [filteredArray componentsJoinedByString:@" "]; 

      3.去掉所有空格

     1 [str stringByReplacingOccurrencesOfString:@" " withString:@""]  

      4.去掉最左边的空格  和  去掉最右边的空格

    @interface NSString (TrimmingAdditions)  
    - (NSString *)stringByTrimmingLeftCharactersInSet:(NSCharacterSet *)characterSet ;  
    - (NSString *)stringByTrimmingRightCharactersInSet:(NSCharacterSet *)characterSet ;  
    @end  
      
    @implementation NSString (TrimmingAdditions)  
      
    - (NSString *)stringByTrimmingLeftCharactersInSet:(NSCharacterSet *)characterSet {  
        NSUInteger location = 0;  
        NSUInteger length = [self length];  
        unichar charBuffer[length];      
        [self getCharacters:charBuffer];  
      
        for (location; location < length; location++) {  
            if (![characterSet characterIsMember:charBuffer[location]]) {  
                break;  
            }  
        }  
      
        return [self substringWithRange:NSMakeRange(location, length - location)];  
    }  
      
    - (NSString *)stringByTrimmingRightCharactersInSet:(NSCharacterSet *)characterSet {  
        NSUInteger location = 0;  
        NSUInteger length = [self length];  
        unichar charBuffer[length];      
        [self getCharacters:charBuffer];  
      
        for (length; length > 0; length--) {  
            if (![characterSet characterIsMember:charBuffer[length - 1]]) {  
                break;  
            }  
        }  
      
        return [self substringWithRange:NSMakeRange(location, length - location)];  
    }  
      
    @end  

        例如:NSLog(@"%@",[@"abc 123 " stringByTrimmingRightCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]);

          :NSLog(@"%@",[@"0.012300" stringByTrimmingRightCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"0"]]);

     一个非常好的例子,来源于http://nshipster.com/nscharacterset/, 去掉多余的空格(包括两端的和中间的)

    NSString *exampleStr = @" My name    is Johnny!";  
    exampleStr = [exampleStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];  
    NSArray *exampleArr = [exampleStr componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];  
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self <> ''"];  
    exampleArr = [exampleArr filteredArrayUsingPredicate:predicate];  
    exampleStr = [exampleArr componentsJoinedByString:@" "];
  • 相关阅读:
    幻灯片效果
    国外空间乱码的解决方法
    图片自动适应
    css圆角效
    iframe自适应兼容
    css圆角
    图片自动适应2
    JQuery实现智能输入提示(仿机票预订网站)
    AppDiag类
    c# 渐变算法
  • 原文地址:https://www.cnblogs.com/mkai/p/6193972.html
Copyright © 2020-2023  润新知