0

私は現在、テキストを 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」と言うべきです。ただし、「The dog deirc.」と応答しています。

助けてください。

4

1 に答える 1

1

stringByReplaceingOccurencesOfString同じ文字列で 3 回呼び出しています。

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;
于 2013-10-14T05:41:47.153 に答える