#iphone #nsstring
#iPhone #nsstring
Вопрос:
У меня есть NSString * str, имеющая значение @»Мне нравится программировать и играть». Я должен удалить «I», «like» amp; «and» из моей строки, чтобы она выглядела как «Программирование игр».
Как я могу это сделать, есть идеи?
Ответ №1:
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);
вывод: Программирование игр
Ответ №2:
NSString * newString = [@"I like Programming and gaming." stringByReplacingOccurrencesOfString:@"I" withString:@""];
newString = [newString stringByReplacingOccurrencesOfString:@"like" withString:@""];
newString = [newString stringByReplacingOccurrencesOfString:@"and" withString:@""];
NSLog(@"%@", newString);
Ответ №3:
Более эффективно и поддерживаемо, чем выполнение нескольких 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];
}
}
}
Комментарии:
1. Виртуальный 1 за мысль, которая привела к долгому пути выполнения этого 😉
2. @Jordan — Это долгий путь, пока не останется около дюжины слов, которые нужно отфильтровать. К тому времени, когда будет отфильтровано более 100 слов, этот подход по сравнению с ними будет выглядеть совершенно компактным.
3. Я тебя слышу 😉 Вот почему v 1 😉
Ответ №4:
Это старый вопрос, но я хотел бы показать свое решение:
NSArray* badWords = @[@"the", @"in", @"and", @"amp;",@"by"];
NSMutableString* mString = [NSMutableString stringWithString:str];
for (NSString* string in badWords) {
mString = [[mString stringByReplacingOccurrencesOfString:string withString:@""] mutableCopy];
}
return [NSString stringWithString:mString];
Ответ №5:
Создайте изменяемую копию вашей строки (или инициализируйте ее как NSMutableString), а затем используйте replaceOccurrencesOfString:withString:options:range:
для замены заданной строки на @»» (пустая строка).