Первой частью проблемы является разделение каждой строки на подстроки, разделенные запятыми.
Для создания подстроки можно использовать
[string substringFromIndex:index]
- получить NSString из этого индекса перемещения вперед [string substringToIndex:index]
- получить NSString от начала до этого индекса Или вы могли бы объединить его в [string substringWithRange:NSMakeRange(fisrtIndex, secondIndex)]
- получить нить от первого индекса ко второму индексу
Это основные операции. Но в этом случае вы можете использовать гораздо больше:
[string componentsSeparatedByString:@","]
, чтобы получить NSArray со всеми подстроками. У этой проблемы были бы проблемы '{'
и '}'
, появляющиеся в первом и последнем компонентах. Эту проблему можно решить несколькими способами:
- на первой обрезки строку с помощью методов подстроку уже пояснялось
- с использованием другого метода в целом
[string componentsSeparatedByCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@",{"]]
Проблема этого метода является то, потому что ваши строки start/end с одним из разделителей вы получите первый/последний компонент пустой строки. Вы можете просто удалить его из массива или игнорировать его или выбрать другой метод, по вашему выбору.
Теперь, когда вы знаете, как получить подстроки, все, что вам нужно знать, - это сравнить их. Существует буквально много способов сделать это. Я просто назову несколько. Конечно, каждое решение имеет свои преимущества, недостатки и сложность кода.
1 - сравнивая каждую подстроку одну за другой другая, используя isEqualToString:
2 - сравнение каждой подстроки из одного из исходных строк с полным второй исходной строки с помощью [string2 rangeOfString:substring].location != NSNotFound
3 - если у вас есть IOS 8 или OS X Yosemite вы можете использовать [string2 containsString:substring]
4 - вы можете преобразовать массив подстрок в наборы, а затем сравнить их Анкит Шривастава предложил
5 - Вы можете использовать removeObjectsInArray
получить подстроки, которые не распространены между ними, а затем использовать что вновь созданный массив removeObjectsInArray
к оригиналу и имеют только общие ...
Действительно возможности почти безграничны
Включает ли строка '{' фигурные скобки? –