有个有趣的问题。我有一个NSDictionary,例如:
self.abbreviations = @{
@"REGL" : @"REGIONAL",
@"REG" : @"REGIONAL",
@"RE" : @"REGIONAL",
@"CO" : @"COUNTY",
}如果缩写是在字符串中注明的,我想用全名替换它,方法是:
if ([destination containsString:[NSString stringWithFormat:@" %@,",key]])
{
destinationRev = [[destination stringByReplacingOccurrencesOfString:@"," withString:@" "]mutableCopy];
}
for (id key in self.abbreviations)
{
if ([destinationRev containsString:[NSString stringWithFormat:@" %@ ", key]])
{
destination = [destinationRev stringByReplacingOccurrencesOfString:key
withString:[self.abbreviations objectForKey:key]];
}
}然而,对于名称:城市CO区域,我有以下输出:城市CO区域。也就是说,虽然CO是在两个空间之间,但它并没有变化。
我遗漏了什么?
谢谢!
发布于 2015-12-12 04:44:09
您将单个替换的结果分配给引用destination,在每个循环运行中保持destinationRev不动,并覆盖destination。因此,您将只得到最后一个替换的字符串。
for (id key in self.abbreviations)
{
if ([destinationRev containsString:[NSString stringWithFormat:@" %@ ", key]])
{
/* ---> */ destinationRev = [destinationRev stringByReplacingOccurrencesOfString:key
withString:[self.abbreviations objectForKey:key]];
}
}https://stackoverflow.com/questions/34235855
复制相似问题