我试图让这段代码工作,想法是比较两个字符串数组,第一个是名称,第二个是单词,所以我尝试从第一个数组中找到单词,然后将它与第二个数组中的所有单词进行比较,如果我得到了肯定的结果,我把这个词打印出来。但它没有按预期工作,它只是打印所有名称数组。这段代码有什么问题?也许有更有效的方法来做到这一点?
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++;
怎么了?我想不通,我试过了。如果您从任一数组中逐个选择单词,您将获得正确的名称和单词。Words 数组中没有大多数名称作为我得到的输出。我只是按顺序得到名称,Aaron、Aasomething 等,它们不在单词数组中。