您好 如何将NSString使用数组替换为另一个数组 像这样
@"Hello world"
{a,b,c,d,e,...} - > {1,2,3,4,5,..} = @“H5llo worl4”
并且可以在没有数组的情况下替换吗? 完全我想将一个字符串的10个字符替换为另外10个字符。 我怎么能这样做?
答案 0 :(得分:1)
循环遍历数组并依次替换每个字符:
// Get the two arrays of characters to replace and their replacements
NSArray *fromArray = [NSArray arrayWithObjects:@"a", @"b", @"c", @"d", @"e", nil];
NSArray *toArray = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", nil];
// Make a mutable version of our string
NSMutableString *newString = [NSMutableString stringWithString:@"Hello World"];
// Deal with each replacement in turn
for (uint n = 0; n < [fromArray count]; ++n)
[newString replaceOccurrencesOfString:[fromArray objectAtIndex:n] withString:[toArray objectAtIndex:n] options:NSLiteralSearch range:NSMakeRange(0, [newString length])];
// Output the new string
NSLog(@"%@", newString);
这段代码不太好 - 如果两个数组的长度不同会怎么样?
答案 1 :(得分:0)
您可以使用NSDictionary
来存储关联数组(包含替换字符串及其键)。
然后,您可以使用 fast enumeration 遍历NSDictionary中的元素,以便您可以使用stringByReplacingOccurrencesOfString:withString:options:range:
替换它。
这种方法比简单地调用replaceOccurrencesOfString:withString:
更好,因为通过指定范围可以避免在已经替换的子字符串上重新循环,并且还可以避免应用链式替换(即a->i, i->4
)