我想从我的字符串中删除“#”。
我试过了
NSString *abc = [@"A#BCD#D" stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"#"]];
但它仍将字符串显示为“A#BCD#D”
有什么问题?
我想从我的字符串中删除“#”。
我试过了
NSString *abc = [@"A#BCD#D" stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"#"]];
但它仍将字符串显示为“A#BCD#D”
有什么问题?
stringByTrimmingCharactersInSet
从字符串的开头和结尾删除字符,而不是从其中的任何位置
为您的目的使用stringByReplacingOccurrencesOfString:withString:
其他人指出的方法。
你可以试试
NSString *modifiedString = [yourString 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:@""];