как удалить отдельные слова из строк? - PullRequest
2 голосов
/ 08 апреля 2011

У меня есть строка NSString * со значением @ "Мне нравится программирование и игры". Мне нужно удалить «I», «как» и «и» из моей строки, чтобы оно выглядело как «Программирование игр»

Как я могу это сделать, любая идея?

Ответы [ 5 ]

7 голосов
/ 08 апреля 2011
NSString *newString = @"I like Programming and gaming.";
NSString *newString1 = [newString stringByReplacingOccurrencesOfString:@"I" withString:@""];
NSString *newString12 = [newString1 stringByReplacingOccurrencesOfString:@"like" withString:@""];
NSString *final = [newString12 stringByReplacingOccurrencesOfString:@"and" withString:@""];

Присвоено неверной строковой переменной, отредактировано, теперь все в порядке

NSLog(@"%@",final);

Вывод: Программирование игр

5 голосов
/ 08 апреля 2011
NSString * newString = [@"I like Programming and gaming." stringByReplacingOccurrencesOfString:@"I" withString:@""];
newString = [newString stringByReplacingOccurrencesOfString:@"like" withString:@""];
newString = [newString stringByReplacingOccurrencesOfString:@"and" withString:@""];

NSLog(@"%@", newString);
4 голосов
/ 08 апреля 2011

Более эффективный и обслуживаемый, чем выполнение серии stringByReplacing... последовательных вызовов:

NSSet* badWords = [NSSet setWithObjects:@"I", @"like", @"and", nil];
NSString* str = @"I like Programming and gaming.";
NSString* result = nil;
NSArray* parts = [str componentsSeparatedByString:@" "];
for (NSString* part in parts) {
    if (! [badWords containsObject: part]) {
        if (! result) {
            //initialize result
            result = part;
        }
        else {
            //append to the result
            result = [NSString stringWithFormat:@"%@ %@", result, part];
        }
    }
}
3 голосов
/ 19 марта 2014

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

NSArray* badWords = @[@"the", @"in", @"and", @"&",@"by"];
NSMutableString* mString = [NSMutableString stringWithString:str];

for (NSString* string in badWords) {
     mString = [[mString stringByReplacingOccurrencesOfString:string withString:@""] mutableCopy];
}

return [NSString stringWithString:mString];
0 голосов
/ 08 апреля 2011

Сделайте изменяемую копию вашей строки (или инициализируйте ее как NSMutableString) и затем используйте replaceOccurrencesOfString:withString:options:range:, чтобы заменить данную строку на @ "" (пустая строка).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...