0

我有一个包含用户信用卡号的 NSString。我想将数字替换为星号。我怎样才能做到这一点?我认为下面的代码不起作用,因为它只针对一个数字:

finalString = [[firstString stringByReplacingOccurancesOfString:@"O" withString:@"*"] stringByReplacingOccurancesOfString:@"o" withString:@"0"];

对所有数字进行 for 循环是最好的方法还是有另一种方法?蒂亚!

4

3 回答 3

4

做这个:

NSCharacterSet* charSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
 finalString = [[finalString componentsSeparatedByCharactersInSet:charSet] componentsJoinedByString:@"*"];
于 2012-09-25T07:15:08.963 回答
2

您也可以对此类任务使用正则表达式:(使用 RegExKitLite)

 NSString * regex = @"[0-9]";
 NSString * stringWithAsteriskInsteadOfNumbers = [stringWithNumbers stringByReplacingOccurrencesOfRegex:regex withString:@"*"];
于 2012-09-25T07:26:26.577 回答
0

最有效的方式,无需分配数以千计的对象:

NSRegularExpression* e = [NSRegularExpression regularExpressionWithPattern:@"\\d" 
                             options:0 error:nil];
finalString = [e stringByReplacingMatchesInString:finalString
                                          options:0 
                                            range:NSMakeRange(0, [finalString length]) 
                                     withTemplate:@"*"];
于 2012-09-25T07:30:38.447 回答