2010-10-14 13 views

Respuesta

25

Esta es la respuesta corta, que doesnt necesidad de cualquier largo de codificación

NSString *newString = [[tempstr componentsSeparatedByCharactersInSet: 
          [[NSCharacterSet letterCharacterSet] invertedSet]] componentsJoinedByString:@""];` 

swift 3:

(tempstr.components(separatedBy:NSCharacterSet.letters.inverted)).joined(separator: "") 

por ejemplo:

("abc123".components(separatedBy:NSCharacterSet.letters.inverted)).joined(separator: "") 
+0

Total Genius! ¡Gracias! – DoctorG

0

encontré una respuesta: de remove-all-but-numbers-from-nsstring

NSString *originalString = @"(123) 123123 abc"; 

NSLog(@"%@", originalString); 
NSMutableString *strippedString = [NSMutableString 
            stringWithCapacity:originalString.length]; 

NSScanner *scanner = [NSScanner scannerWithString:originalString]; 
NSCharacterSet *numbers = [NSCharacterSet 
          characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyz"]; 

while ([scanner isAtEnd] == NO) { 
    NSString *buffer; 
    if ([scanner scanCharactersFromSet:numbers intoString:&buffer]) { 
     [strippedString appendString:buffer]; 

    } else { 
     [scanner setScanLocation:([scanner scanLocation] + 1)]; 
    } 
} 

NSLog(@"%@", strippedString); 
+0

No soy un experto en xcode, pero ¿no hay una solución más simple para realizar esa simple tarea? –

+0

Estoy bastante sorprendido de que esto no se haya visto antes, pero esta respuesta se ha tomado palabra por palabra de stackoverflow.com/questions/1129521/remove-all-but-numbers-from-nsstringst no es bueno copiar la respuesta de otra persona como ese. – Popeye

+0

lo siento, no sabía sobre este enlace. En realidad, uno de mis amigos me dio esta respuesta, así que acabo de copiarla aquí. De todos modos, agregaré tu enlace como referencia. –

1
NSString *stringToFilter = @"filter-me"; 


    NSMutableString *targetString = [NSMutableString string]; 


    //set of characters which are required in the string...... 
    NSCharacterSet *okCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyz"]; 


    for(int i = 0; i < [stringToFilter length]; i++) 
    { 
     unichar currentChar = [stringToFilter characterAtIndex:i]; 
     if([okCharacterSet characterIsMember:currentChar]) 
     { 
      [targetString appendFormat:@"%C", currentChar]; 
     } 
    } 


    NSLog(targetString);  


    [super viewDidLoad]; 
} 

se trataba de una respuesta dada a mí y funciona bien

+0

Gracias obtuve lo que quiera de este código ... –

Cuestiones relacionadas