[学习笔记]NSString andNSMutableString(二)
开头一直截取到指定下标,不包含该下标。 Result : ab
NSLog(@"string15 subStringFromIndex:2 is %@", [string15 substringFromIndex:2]); //从指定下标截取到末尾,包含该下标。 Result : cdefgh
// - - - - 根据范围来截取字符串
NSString *string16 = @"abcdefgh";
NSLog(@"string16 location:2 length:3 is %@",[string16 substringWithRange:NSMakeRange(2, 3)]); //从指定下标截取指定长度的字符串。 Result : cde
// - - - - 拼接字符串
NSString *string17 = @"abc";
NSString *string18 = @"def";
NSString *stringAppend1 = [[NSString alloc] initWithFormat:@"%@%@", string17, string18];
NSString *stringAppend2 = [string17 stringByAppendingFormat:@"%@", string18];
NSString *stringAppend3 = [string17 stringByAppendingString:string18];
// - - - - 查找字符串里的字符串位置
NSString *string19 = @"zcaadasdastarget=_lengxuanfeiadadas";
NSRange range = [string19 rangeOfString:@"target=_lengxuanfei"];
if(range.location != NSNotFound){
NSLog(@"find target_lengxuanfei, location : %u, length : %u", range.location, range.length);
}
//Result : find target_lengxuanfei, location : 10, length : 19
}
复制代码
2. NSString
NSMutable是NSString的子类,继承上述NSString的方法和属性。
但是不同点是;NSString在内存中的大小的地址是不变的,重新复制时,其实是开辟另外一块内存地址分配给NSString。是不可变的。
NSMutableString可以在原先分配的内存的基础上通过增减内存的方式来改变自己。是可变的。
复制代码
// 插入字符串
NSMutableString *mutableString1 = [[NSMutableString alloc] initWithString:@"abc"];
[mutableString1 insertString:@"defg" atIndex:3]; //直接在当前字符串的指定下标处插入字符。
NSLog(@"mutableString1 insert result: %@", mutableString1); //Result : abcdefg
// 删除字符串
[mutableString1 deleteCharactersInRange:NSMakeRange(3, 4)]; //直接在当前字符串中删除指定范围内的字符
NSLog(@"mutableString1 delete(3,4) result: %@", mutableString1);//Result : abc
//替换字符串
[mutableString1 replaceCharactersInRange:NSMakeRange(0, 3) withString:@"defg"]; //在当前字符串内替换掉指定范围内的字符串
NSLog(@"mutableString1 replace(3,4) result: %@", mutableString1); //Result : defg