Если ваши строки всегда будут в этом разделенном запятыми формата, попробуйте написать метод, который возвращает BOOL
, который разбивает строку друг от друга, а затем сравнивает содержимое. (Написание этого грязного стиля ARC).
-(BOOL)compareWordsInString:(NSString*)stringA withString:(NSString*)stringB
{
NSArray *arrayA = [stringA componentsSeparatedByString:@","];
NSArray *arrayB = [stringB componentsSeparatedByString:@","];
NSSet *setA = [[NSSet alloc] initWithArray:arrayA];
NSSet *setB = [[NSSet alloc] initWithArray:arrayB];
return [setA isEqualToSet:setB];
}
Затем вы можете вызвать этот метод в вашей if
:
if([self compareWordsInString:@"a,b,c" withString:@"b,c,a"])
{
// do work
}
Заметьте, что это не будет работать должным образом, если количество слов должно точно соответствовать и иметь ровно один матч корреспондент в вторая строка, как NSSet
, будет оценивать ДА при сравнении @"a,a,b,b,c,c,c"
с @"a,b,c"
, потому что каждый объект будет добавлен только один раз.
Я бы попытаться найти аа способ получить их в правильном порядке, чтобы начать с :) Все ответы ниже - это потрясающе, но если вы можете их отсортировать, чтобы начать с этого, это будет намного эффективнее сравнивать! – deanWombourne
Я думаю, что это возможно без сортировки вообще –
@deanWombourne Теперь я отправил ответ, не сортируя ничего –