我想使用字典将字符串中的某些字符替换为其他字符。
例如,每个“a”应该被“1”替换,每个“1”应该被“9”替换。我不希望每个“a”都被替换两次,最后是“9”。每个字符只能替换一次。
我使用以下代码完成了这项工作,但我觉得它可以更有效地完成。这真的是我能做的最好的事情,还是你能帮我改进我的代码?
NSDictionary *replacements = [NSDictionary dictionaryWithObjectsAndKeys:
// Object, Key,
@"1", @"a",
@"2", @"b",
@"3", @"c",
@"9", @"1",
@"8", @"2",
@"7", @"3",
nil];
NSString *string = @"abc-123";
NSMutableString *newString = [NSMutableString stringWithCapacity:0];
for (NSInteger i = 0; i < string.length; i++)
{
NSString *c = [NSString stringWithFormat:@"%C", [string characterAtIndex:i]];
id replacement = [replacements objectForKey:c];
if (replacement != nil) {
[newString appendString:replacement];
} else {
[newString appendString:c];
}
}
NSLog(@"newString: %@", newString); // newString: 123-987 (Works!)
只是要明确一点:这段代码对我有用,我只是觉得它效率很低。我正在寻找改进它的方法。
谢谢你。