NSString - Convert to pure alphabet only (i.e. remove accents+punctuation)

前端 未结 13 1481
暖寄归人
暖寄归人 2020-12-02 15:49

I\'m trying to compare names without any punctuation, spaces, accents etc. At the moment I am doing the following:

-(NSString*) prepareString:(NSString*)a {
         


        
13条回答
  •  甜味超标
    2020-12-02 16:29

    @interface NSString (Filtering)
        - (NSString*)stringByFilteringCharacters:(NSCharacterSet*)charSet;
    @end
    
    @implementation NSString (Filtering)
        - (NSString*)stringByFilteringCharacters:(NSCharacterSet*)charSet {
          NSMutableString * mutString = [NSMutableString stringWithCapacity:[self length]];
          for (int i = 0; i < [self length]; i++){
            char c = [self characterAtIndex:i];
            if(![charSet characterIsMember:c]) [mutString appendFormat:@"%c", c];
          }
          return [NSString stringWithString:mutString];
        }
    @end
    

提交回复
热议问题