2010-10-14 11 views

risposta

25

Questa è la risposta breve, che non ha bisogno di alcun lunga codifica

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

swift 3:

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

esempio:

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

Total Genius! Grazie! – DoctorG

0

ho trovato una risposta: da 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

Non sono esperto in xcode, ma non esiste una soluzione più semplice per eseguire un compito così semplice? –

+0

Sono abbastanza sorpreso che questo non è stato visto prima, ma questa risposta è stata presa parola per parola da stackoverflow.com/questions/1129521/remove-all-but-numbers-from-nsstringst non va bene per copiare qualcun altro rispondere come quella. – Popeye

+0

scusa non sapevo su questo link. In realtà uno dei miei amici ha dato questa risposta così ho appena copiato qui .. qualsiasi come aggiungerò il tuo link come riferimento ad esso. –

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]; 
} 

questa era una risposta data a me e funziona bene

+0

Grazie ho ottenuto tutto quello che voglio da questo codice ... –

Problemi correlati