一个字符串需要经常改变,就用NSMutableString
NSMutableString是NSString的子类,所以,NSString的方法,NSMutableString都可以用
1、常见用法
//Capacity表示容量,如果字符超过存储空间就扩展
//(尽量开辟时就够用,也不要太大)
NSMutableString *mutableString = [NSMutableString stringWithCapacity:6];
//
NSMutableString *mutableString = [[NSMutableString alloc] initWithCapacity:6];
//类方法创建可变字符串
NSMutableString *mutableString1 = [NSMutableString string];
//在指定位置插入一个字符串对象(在第一个字符串后插入)
NSString *string1 = @"高否";
NSMutableString * mutableString2 = [NSMutableString stringWithFormat:@"afeixiaohuozi"];
[mutableString2 insertString:string17 atIndex:1];
NSLog(@"%@",mutableString2);
//删除字符串中某范围内容(从第0个删除3个)
[mutableString2 deleteCharactersInRange:NSMakeRange(0, 3)];
NSRange rang3 = {2,3};
[mutableString2 deleteCharactersInRange:rang3];
NSLog(@"%@",mutableString2);
//拼接可变字符串
NSString *string2 = @"京剧";
[mutableString2 appendString:string2];
[mutableString2 appendFormat:@"阿飞小伙子喜欢%@",string2];
NSLog(@"%@",mutableString2);
//替换
[mutableString1 deleteCharactersInRange:rang3];
NSRange rrr = [mutableString1 rangeOfString:@"df"];
[mutableString2 replaceCharactersInRange:rrr withString:@"www"];
[mutableString2 replaceOccurrencesOfString:@"iiiiihj" withString:@"小白" options:NSLiteralSearch range:rrr];
//可变字符串赋值
NSMutableString *mutableString3 = [NSMutableString stringWithCapacity:0];
//NSMutableString *mutableString3 = [NSMutableString string];
[mutableString3 setString:@"哈哈 阿飞小 伙子"];
2、放一些知识点在这里
@interface NSMutableString : NSString
#pragma mark *** Mutable string ***
/* NSMutableString primitive (funnel) method. See below for the other mutation methods.
*/
- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;
@end
@interface NSMutableString (NSMutableStringExtensionMethods)
/* Additional mutation methods. For subclassers these are all available implemented in terms of the primitive replaceCharactersInRange:range: method.
*/
- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
- (void)deleteCharactersInRange:(NSRange)range;
- (void)appendString:(NSString *)aString;
- (void)appendFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
- (void)setString:(NSString *)aString;
/* This method replaces all occurrences of the target string with the replacement string, in the specified range of the receiver string, and returns the number of replacements. NSBackwardsSearch means the search is done from the end of the range (the results could be different); NSAnchoredSearch means only anchored (but potentially multiple) instances will be replaced. NSLiteralSearch and NSCaseInsensitiveSearch also apply. NSNumericSearch is ignored. Use NSMakeRange(0, [receiver length]) to process whole string. If NSRegularExpressionSearch is specified, the replacement is treated as a template, as in the corresponding NSRegularExpression methods, and no other options can apply except NSCaseInsensitiveSearch and NSAnchoredSearch.
*/
- (NSUInteger)replaceOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRange;
/* Perform string transliteration. The transformation represented by transform is applied to the given range of string in place. Only the specified range will be modified, but the transform may look at portions of the string outside that range for context. If supplied, resultingRange is modified to reflect the new range corresponding to the original range. reverse indicates that the inverse transform should be used instead, if it exists. Attempting to use an invalid transform identifier or reverse an irreversible transform will return NO; otherwise YES is returned, even if no characters are actually transformed. You can pass one of the predefined transforms listed above (NSStringTransformLatinToKatakana, etc), or any valid ICU transform ID as defined in the ICU User Guide. Arbitrary ICU transform rules are not supported.
*/
- (BOOL)applyTransform:(NSStringTransform)transform reverse:(BOOL)reverse range:(NSRange)range updatedRange:(nullable NSRangePointer)resultingRange API_AVAILABLE(macos(10.11), ios(9.0), watchos(2.0), tvos(9.0));
/* In addition to these two, NSMutableString responds properly to all NSString creation methods.
*/
- (NSMutableString *)initWithCapacity:(NSUInteger)capacity;
+ (NSMutableString *)stringWithCapacity:(NSUInteger)capacity;