#objective-c #arrays #ios
#objective-c #массивы #iOS
Вопрос:
Я хотел бы знать, как сравнить строку с массивом, т. Е., если в моем списке массивов есть {"abc", "pqr", "xyz"}
и, допустим, "mno"
введена новая строка, она должна сравниваться с моим предыдущим списком массивов. Как я могу это сделать? Заранее спасибо.
Ответ №1:
Посмотрите на документацию NSArray…
BOOL hasString = [your_array containsObject:your_string];
Комментарии:
1. можем ли мы использовать это в условии if
2. @sameer, да, ты можешь:
if ([your_array containsObject:your_string]) {}
3. Это хорошее решение, только если вас не интересует фактическое содержимое строки, что обычно не так. Вызов containsObject использует isEquals для сравнения каждого элемента.
4. @crow, ты единственный, кто принял это во внимание. На самом деле я искал способ вызвать isEqualToString аналогичным образом, но позже понял, что isEqual для меня достаточно в текущем сценарии. Однако меня интересует чистое решение с isEqualToString, просто из любопытства. Вы знаете, как мы можем этого добиться?
Ответ №2:
Система:
if ([yourArray containsObject:yourNSString])
{
NSLog(@"Bingo!");
}
Руководство:
for (int i = 0 ; i < [yourArray count] ; i ) {
if ([yourNSString isEqualToString:[yourArray objectAtIndex:i]]) {
NSLog(@"Bingo!");
break;
}
}
Ответ №3:
for(int i=0; i<[myarray length]; i) {
if([myarray[i] isEqualToString:@"mno"])
NSLog("Equal");
else NSLog("Not Equal");
}
Ответ №4:
Вот рабочий (протестированный) метод,
-(BOOL)checkStingInArray: (NSString *)aString arrayWithStrings:(NSMutableArray *)array
{
if ( [array containsObject: aString] ) {
NSLog(@" %@ found in Array",aString );
return YES;
} else {
NSLog(@" %@ not found in Array",aString );
return NO;
}
}