- 初始化方法
- 便利构造器
- 字面量–语法糖
- 字符串appending拼接
- 格式化字符串format拼接
- 字符串compare比较
- 测试字符串是否以NSString开始或结束
- 搜索字符串A是否存在于B
- 测试字符串是否相等isEqual
- 字符串substring截取
- 字符串replacing替换
- 字母大小写转换
- NSMutableString初始化
- NSNumber封装和解封
//OC中,字符串由Unicode字符组成.
//NSString:不可变字符串,创建之后内容长度不可更改;
//NSMutableString:可变字符串,创建之后内容可更改.
NSMutableString * str =[ [NSMutableString alloc] initWithFormat:@"123"];
NSLog(@"str = %p",str);
[str appendFormat:@"456"];
NSLog(@"str = %p",str);
//因为类型是nsmutablestring,改动自身内容,地址不会改变.
//NSString类型
NSString * str1 = [[NSString alloc] initWithFormat:@"123"];
NSLog(@"str1 = %p,str1");
str1 = [str1 stringByAppendingFormat:"456"];
NSLog(@"str1 = %p",str1);
//调用了stringByAppendFormat方法,内部实现创建一个新NSString对象,地址发生变化,原有NSString地址是不变的
1.初始化方法
NSString *string = [[NSString alloc]] initWithFormat:@"Hello Kugou";
2.便利构造器
NSString *string = [NSString stringWithFormat:@"Hello Kugou"];
3.字面量–语法糖
NSString *string = @"Hello Kugou";
4.字符串appending拼接
NSString *string = @"天苍苍野茫茫,";
NSString *string1 = @"风吹草低现牛羊.";
NSLog(@"%@",[string stringByAppendingString:string1]);
//NSLog(@"%@",[string stringByAppendingFormat:string1]);//⚠️format string is not a string literal (potentially insecure)
NSLog(@"%@",[string stringByAppendingFormat:@"一枝红杏出墙来."]);
NSString *string4 = [string stringByAppendingPathComponent:string1];
NSLog(@"%@",string4);
NSLog(@"%@",[string stringByAppendingPathComponent:@"代码越敲越疯狂."]);//在string后面加上"/"号连接下一句使其成为完整路径
NSLog(@"%@",[string stringByAppendingPathExtension:@"娶错媳妇嫁错郎."]);//给string加后缀的
5.格式化字符串format拼接
NSString *string3 = [NSString stringWithFormat:@"一枝红杏出墙来."];
NSString *string2 = [NSString stringWithFormat:@"一骑红尘妃子笑,%@",string3];
NSLog(@"%@",string2);
6.字符串compare比较
//- (NSComparisonResult)compare:(NSString *)string;
NSComparisonResult result = [string1 compare:string];
switch (result) {
case NSOrderedSame:
NSLog(@"相同");
break;
case NSOrderedAscending:
NSLog(@"前小后大");
break;
case NSOrderedDescending:
NSLog(@"前大后小");
break;
default:
break;
}
NSString *bijiao = @"hellokugou";
NSString *bijiao1 = @"hellokugouworlddog";
NSLog(@"%ld",[bijiao compare:bijiao1]);
7.测试字符串是否以NSString开始或结束
//- (BOOL)hasPrefix:(NSString *)aString;
NSLog(@"%d",[string3 hasPrefix:@"一枝红杏"]);//从索引0开始判断
NSLog(@"%d",[string3 hasSuffix:@"出墙来啊"]);//从结尾开始判断
if ([string3 hasPrefix:@"一枝红杏出墙"]) {
NSLog(@"对哩");
}
if (![string3 hasSuffix:@"一骑红尘妃子笑"]){
NSLog(@"不对啊");
NSLog(@"%@",[string3 stringByReplacingCharactersInRange:NSMakeRange([string3 length]-8, 8) withString:@"一枝红杏出墙来"]);
}
8.搜索字符串A是否存在于B
//- (NSRange)rangeOfString:(NSString *)aString;
NSLog(@"%lu",(unsigned long)[bijiao1 rangeOfString:@"u"].location);
9.测试字符串是否相等isEqual
//- (BOOL)isEqualToString:(NSString *)aString;
NSLog(@"%d",[bijiao isEqualToString:@"world"]);
if ([bijiao isEqualToString:@"kugou"]) {
NSLog(@"相等");
}else{
NSLog(@"不相等");
}
10.字符串substring截取
//- (NSString *)substringFromIndex:(NSUInteger)from;
NSLog(@"%@",[string3 substringFromIndex:2]);//指定位置后边字符
//- (NSString *)substringToIndex:(NSUInteger)to;
NSLog(@"%@",[string3 substringToIndex:4]);//从0索引到指定长度✌️
//- (NSString *)substringWithRange:(NSRange)range;
NSLog(@"%@",[string3 substringWithRange:NSMakeRange(2, 4)]);//(location,length)
11.字符串replacing替换
//- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement NS_AVAILABLE(10_5, 2_0);
NSLog(@"%@",[string3 stringByReplacingOccurrencesOfString:@"一" withString:@"两"]);//选择替换
//- (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement NS_AVAILABLE(10_5, 2_0);
NSLog(@"%@",[string3 stringByReplacingCharactersInRange:NSMakeRange(2, 2) withString:@"菊花"]);//指定区域段替换
//- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRange NS_AVAILABLE(10_5, 2_0);
NSLog(@"%@",[string3 stringByReplacingOccurrencesOfString:@"红杏" withString:@"木棍" options:NSLiteralSearch range:NSMakeRange(1,5)]);//指定范围内检索替换
12.字母大小写转换
NSString *string6 = @"AbCdElalala";
NSLog(@"%@",[string6 uppercaseString]);//全部大写
NSLog(@"%@",[string6 lowercaseString]);//全部小写
NSLog(@"%@",[string6 capitalizedString]);//首字母大写
13.NSMutableString初始化
//可变类必须先初始化,否则奔溃
NSMutableString *mutableString = [NSMutableString string];//类方法初始化
NSMutableString *mStr = [[NSMutableString alloc] init];//init实例方法初始化
NSMutableString *mStr1 = [[NSMutableString alloc] initWithCapacity:0];//指定初始化方法,capacity是申请内存空间,但系统会根据字符串的增减自动调整内存大小
//mutablestring 使用init初始化或类方法初始化时,利用setString进行赋值
[mStr setString:@"avple"];
[mStr insertString:@"p" atIndex:2];//第二个位置插入p
[mStr deleteCharactersInRange:NSMakeRange(1, 1)];//删除指定范围内字符(location,length)
NSLog(@"%@",mStr);
14.NSNumber封装和解封
NSNumber *number = [NSNumber numberWithInt:123];//封装
//int i = [numb intValue];
//NSLog(@"%d",i);
NSLog(@"%d",[number intValue]);//解封
NSNumber *intNumber = @123;//Xcode新特性支持@[(基本数据类型)]
NSLog(@"%d",[intNumber intValue]);
如果要存放基本数据类型,必须先将基本数据类型包装成对象类型然后再用集合类进行存储,OC中提供的包装类是NSNumber,NSValue。其中NSNumber继承于NSValue。NSNumber主要针对于基本数据类型的包装,NSValue主要针对结构体进行包装