2012-01-06 36 views
1

我一直在试图过滤用下面的代码之后的字符串:滤波器NSScanner一个String和去除空白数字字符

//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 2012-01-06 16:14:15

+0

我期望(A) – 2012-01-06 19:40:34

回答

1

我还没有使用NSScanner,但我认为您的问题在于,默认情况下,NSScanner在扫描时会跳过空格和换行符。如果在实例化扫描仪对象后添加以下代码,则代码将起作用:

[scanner setCharactersToBeSkipped:nil]; 
+0

是的,它解决了它。谢谢。 – 2012-01-07 14:54:20