我正在进行一项实验,我将文本输入到UITextField中,然后搜索文本以查看其中是否包含某些字符串。如果找到某个文本,它应该替换它,并将其发送到UITextView。 (想想一个超级简化的翻译员)
我遇到的问题是它只发送我上次配对的文字。 例如,
NSString *mainString = [[NSString alloc] initWithString:field.text];
NSArray *stringsToReplace = [[NSArray alloc] initWithObjects:@"The",@"dog",@"cried", nil];
NSArray *stringsReplaceBy = [[NSArray alloc] initWithObjects:@"ehT",@"god",@"deirc", nil];
for (int i=0; i< [stringsReplaceBy count]; i++)
{
look.text = [mainString stringByReplacingOccurrencesOfString:[stringsToReplace objectAtIndex:i] withString:[stringsReplaceBy objectAtIndex:i]];
}
当我输入时,“狗哭了。”应该说“ehT god deirc。”然而,它正在响应“狗deirc”。
请帮忙。
答案 0 :(得分:1)
您在同一个字符串上调用stringByReplaceingOccurencesOfString
三次:
for (int i=0; i< [stringsReplaceBy count]; i++)
{
look.text = [mainString stringByReplacingOccurrencesOfString:[stringsToReplace objectAtIndex:i] withString:[stringsReplaceBy objectAtIndex:i]];
}
相反,将结果保存到另一个字符串对象中:
NSString *modifiedString = mainString;
for (int i=0; i< [stringsReplaceBy count]; i++)
{
modifiedString = [modifiedString stringByReplacingOccurrencesOfString:[stringsToReplace objectAtIndex:i] withString:[stringsReplaceBy objectAtIndex:i]];
}
look.text = modifiedString;