Ответ 1
Вы можете попробовать
NSString *modifiedString = [yourString stringByReplacingOccurrencesOfString:@"#" withString:@""];
Я хочу удалить "#" из моей строки.
Я пробовал
NSString *abc = [@"A#BCD#D" stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"#"]];
Но он все еще показывает строку как "A # BCD # D"
Что может быть неправильным?
Вы можете попробовать
NSString *modifiedString = [yourString stringByReplacingOccurrencesOfString:@"#" withString:@""];
stringByTrimmingCharactersInSet
удаляет символы из начала и конца строки, а не из любого места в ней
Для вашей цели используйте метод stringByReplacingOccurrencesOfString:withString:
, как указывали другие.
Я написал категорию NSString
для этого:
- (NSString *)stringByReplaceCharacterSet:(NSCharacterSet *)characterset withString:(NSString *)string {
NSString *result = self;
NSRange range = [result rangeOfCharacterFromSet:characterset];
while (range.location != NSNotFound) {
result = [result stringByReplacingCharactersInRange:range withString:string];
range = [result rangeOfCharacterFromSet:characterset];
}
return result;
}
Вы можете использовать его следующим образом:
NSCharacterSet *funnyCharset = [NSCharacterSet characterSetWithCharactersInString:@"#"];
NSString *newString = [string stringByReplaceCharacterSet:funnyCharset withString:@""];
У меня ранее был относительно сложный рекурсивный ответ для этого (см. историю изменений этого ответа, если вы хотите увидеть этот ответ), но затем я нашел довольно простой один лайнер:
- (NSString *)stringByRemovingCharactersInSet:(NSCharacterSet *)characterSet {
return [[self componentsSeparatedByCharactersInSet:characterSet] componentsJoinedByString:@""];
}
Обратитесь к документации Apple о: stringByReplacingOccurrencesOfString: метод в NSString
NSString *str1=[str stringByReplacingOccurrencesOfString:@"#" withString:@""];
Надеюсь, что это поможет.
Используйте ниже
NSString * myString = @"A#BCD#D";
NSString * newString = [myString stringByReplacingOccurrencesOfString:@"#" withString:@""];