私はこのコードを機能させようとしています。最初は名前、2番目は単語の2つの文字列配列を比較するので、最初の配列から単語を見つけて、2番目の配列のすべての単語と比較します。私は肯定的な結果を得て、私は単語を印刷します。ただし、意図したとおりには機能せず、名前の配列をすべて出力するだけです。このコードの何が問題になっていますか?たぶん、これを行うためのより効果的な方法がありますか?
for (NSString *n in names) {
for (NSString *m in words) {
if ([n caseInsensitiveCompare:m] == NSOrderedSame) {
NSLog(@"%@", n);
}
}
}
別の方法を試しましたが、名前が次々と印刷され続けます。同じ結果を得るために単語を名前に交換しようとしました。お互いを比較するのに何か問題があります。
for (NSString *n in names) {
NSString *newN = [n lowercaseString];
for (NSString *m in words) {
NSString *newM = [m lowercaseString];
if ([newN isEqualToString: newM]) {
NSLog(@"%@ is equal to %@", newN, newM );
}
}
}
これは同じ結果をもたらします!ええと。
NSArray *names = [nameString componentsSeparatedByString:@"\n"];
NSArray *words = [itemsString componentsSeparatedByString:@"\n"];
int i = 0;
int j = 0;
while (i != [names count] ) {
while (j != [words count]) {
if ([[names objectAtIndex:i] caseInsensitiveCompare:[words objectAtIndex:j]] == NSOrderedSame)
{
NSLog(@"Voila! Name is : %@", [names objectAtIndex:i]);
}
j++;
}
j = 0;
i++;
なにが問題ですか?わからない、やってみた。いずれかの配列から単語を1つずつ選択すると、正しい名前と単語が得られます。Words配列には、取得した出力としてほとんどの名前が含まれていません。Aaron、Aasomethingなどの名前だけを順番に取得しますが、それらは単語の配列ではありません。