2013-07-02 5 views
-5

Как я могу удалить общие буквы в двух строках и сгенерировать новую строку, используя оставшиеся уникальные буквы?Как удалить общие буквы в двух строках в SDK iOS?

, например:

String 1= Optimus Prime, 
String 2= Deja Thoras, 

новая строка должна быть: Djaha

+0

Вы имеете в виду «Как удалить символы из одной строки в другую строку?» –

+0

Похоже, домашнее задание для меня. Он должен быть отмечен как таковой. – futureelite7

+1

Pawan, вы не можете изменить вопрос после того, как много людей ответили. Первоначальный ответ попросил процесс, который привел к «Djaha». Если у вас другой вопрос, задайте новый вопрос. –

ответ

5

Просто перечислить через символы в строки и удаления. Обязательно выполните поиск «без использования» (т. Е. Разница между прописными и строчными буквами не имеет значения). Следующий фрагмент журнала «Djaha», как ожидается, откроется.

NSString *firstString = @"Deja Thoras"; 
NSString *secondString = @"Optimus Prime"; 

NSMutableString *outputString = [NSMutableString stringWithString:firstString]; 

[outputString enumerateSubstringsInRange:NSMakeRange(0, firstString.length) options:NSStringEnumerationByComposedCharacterSequences 
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) { 
    if ([secondString rangeOfString:substring options:NSCaseInsensitiveSearch].location != NSNotFound) { 
     [outputString deleteCharactersInRange:substringRange]; 
    } 
}]; 

NSLog(@"%@", outputString); 

Если это обычная операция, я бы разместить код в категорию с именем метода, как stringByRemovingMatchingCharactersInString:

+0

Проверено рабочее! – borrrden

+0

+1 для использования 'enumerateSubstringsInRange:' для перечисления символов. –

+0

Пожалуйста, отметьте как ответ, если он работает для вас borrrden, поэтому этот вопрос можно считать закрытым. –

5

Вот способ, который позволяет избежать вшивый песчаный характер перечисления:

NSString *string1 = @"Deja Thoras"; 
NSString *string2 = @"Optimus Prime"; 

NSCharacterSet *filterSet = [NSCharacterSet characterSetWithCharactersInString:string2]; 
NSString *filteredString = [[string1 componentsSeparatedByCharactersInSet:filterSet] componentsJoinedByString:@""]; 
+0

Выход, который я получил при запуске, это «OptimuPim», так что это работает неправильно. Я думаю, вы не добавляете буквы из второй строки (а также уменьшаете дубликаты). – borrrden

+0

@borrrden Что я делаю, это удаление символов, содержащихся в строке из другой строки. Я думал, что OP хочет этого, а не того, что вы описали из-за ожидаемого результата «Djaha». Кроме того, я сосредоточился на удалении персонажа и игнорировал чувствительность к регистру. –

+0

Я вижу сейчас. Если вы отмените две строки и положите чувствительность к регистру, тогда она будет работать. Умная! – borrrden

Смежные вопросы