2012-01-06 6 views
1

나는 다음과 같은 코드를 문자열 필터링 노력했습니다 후 NSScanner와 문자열 제거 공백 :필터 숫자 문자

결과 : 나에게 결과를 제공

//the String with the original text 
NSString *unfilteredString = @"(A1)"; 
//initialize a string that will hold the result 
NSMutableString *resultString = [NSMutableString stringWithCapacity:unfilteredString.length]; 

NSScanner *scanner = [NSScanner scannerWithString:unfilteredString]; 
NSCharacterSet *allowedChars = [[NSCharacterSet decimalDigitCharacterSet] invertedSet]; 

while ([scanner isAtEnd] == NO) { 
    NSString *buffer; 
    if ([scanner scanCharactersFromSet:allowedChars intoString:&buffer]) { 
     [resultString appendString:buffer];  
    } 
    else { 
     [scanner setScanLocation:([scanner scanLocation] + 1)]; 
    } 
} 
NSLog (@"Result: %@", resultString); 

를 : (A)

보시다시피, 숫자 1은 물론 후행 공백이 제거되었습니다.

어떤 힌트를 주시겠습니까?

+0

결과 받기를 원하십니까? – jonkroll

+0

나는 (A) –

답변

1

NSScanner를 많이 사용하지는 않았지만 기본적으로 NSScanner는 스캐닝 할 때 공백과 줄 바꿈을 건너 뜁니다. 스캐너 객체를 인스턴스화 한 후에이 줄을 추가하면 코드가 작동합니다.

+0

예, 그것을 해결할 것으로 기대합니다. 고맙습니다. –

관련 문제