我想删除所有字符,我需要的东西是0到9之间的数字
你能告诉我一些解决这个问题的例子吗?
答案 0 :(得分:3)
您可以创建自己的NSCharacterSet,然后使用其invertSet修剪掉其中未包含的每个字符。这是一个例子:
NSString *stringWithLettersAndNumbers = @"345345345fff";
NSCharacterSet *myCharset = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
NSString *newString = [stringWithLettersAndNumbers stringByTrimmingCharactersInSet:[myCharset invertedSet]];
NSLog(@"%@",newString);
答案 1 :(得分:2)
正则表达式非常适合这类内容:
NSString *orgStr = @"letters34243more32132letters";
NSString *result = [orgStr stringByReplacingOccurrencesOfString: @"\\D"
withString: @""
options: NSRegularExpressionSearch
range: NSMakeRange(0, orgStr.length)];
它的作用是找到任何非数字字符(定义为\D
)并用空字符串替换它,即删除它。
它适用于任何此类角色,无论其在弦乐中的位置如何。在我阅读这个问题时,这就是你所需要的。
模式字符串中的双反斜杠(“\”)是必要的,因为NSString文字需要额外的反斜杠来逃避“真正的”反斜杠。
答案 2 :(得分:0)
循环播放字符串并拾取所有数字。
NSMutableString *strResult = [NSMutableString string];
for (int position=0; position<text.length; position++) {
unichar c = [text characterAtIndex:position];
NSCharacterSet *numericSet = [NSCharacterSet decimalDigitCharacterSet];
if ([numericSet characterIsMember:c]) {
[strResult appendFormat:@"%C", c];
}
}