2012-11-21 7 views
2

Im имеющей проблемы с удалением специальных символов из строки .I используется следующая code.But впадина work.Please предложить мне лучшую логикуПроблемы с заменой специальных символов

- (NSString *)trimmedReciString:(NSString *)stringName 
{ 
    NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"-/:;()$&@\".,?!\'[]{}#%^*+=_|~<>€£¥•."]; 
    for (int i = 0; i < [stringName length]; i++) { 
     unichar c = [stringName characterAtIndex:i]; 
     if ([myCharSet characterIsMember:c]) { 
      NSLog(@"%@",[NSString stringWithFormat:@"%c",[stringName characterAtIndex:i]]); 
      stringName = [stringName stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%c",[stringName characterAtIndex:i]] withString:@""]; 

     } 
    } 
    return stringName; 
} 

ответ

8
NSString *s = @"$$$hgh$g%k&fg$$tw/-tg"; 
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"-/:;()$&@\".,?!\'[]{}#%^*+=_|~<>€£¥•."]; 
s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""]; 
NSLog(@"String is: %@", s); 
+0

хороший один я тестировал этот выходной код Строка: hghgkfgtwtg +1 за просто решение –

+0

просто и красиво, спасибо Namrata –

0

Попробуйте начать с конца строки и работать назад, а не идти вперед-назад, так как вы, вероятно, случайно (и непреднамеренно) пропускаете символы, когда предыдущий символ удаляется.

3

Попробуйте это ...

NSString *unfilteredString = @"[email protected]#$%^&*()_+|abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; 
NSCharacterSet *notAllowedChars = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"] invertedSet]; 
NSString *resultString = [[unfilteredString componentsSeparatedByCharactersInSet:notAllowedChars] componentsJoinedByString:@""]; 
NSLog (@"Result: %@", resultString); 
Смежные вопросы