1、OC字符串的创建
//当编译器发现一个@""的时候就会自动的生成一个字符串对象,
//该字符串存放在只读数据段
NSString * str1 = @"hello world!";
//用一个现有的字符串str1创建一个新的字符串str2
NSString * str2 = [[NSStringalloc] initWithString:str1];
//用C字符串来创建一个OC字符串
NSString * str3 = [[NSStringalloc] initWithUTF8String:"12345"];
NSString * str4 = [[NSStringalloc] initWithCString:"2345"encoding:NSUTF8StringEncoding]
//用格式符来创建字符串
NSString * str5 = [[NSStringalloc] initWithFormat:@"%@%@%d%.2f", str2, str3,123, 12.34f];
//读取文本内容来创建字符串
//第一个参数:文件的路径
//编码格式
NSString * str6 = [[NSStringalloc] initWithContentsOfFile:@"/Users/qianfeng/Desktop/笔记本使用注意事项.txt" encoding:NSUTF8StringEncoding error:nil];
//用类方法创建
//用一个字符串来创建
NSString * str7 = [NSStringstringWithString:str1];
//用C字符串来创建
NSString * str8 = [NSStringstringWithUTF8String:"123"];
//用编码格式来创建
NSString * str9 = [NSStringstringWithCString:"456"encoding:NSUTF8StringEncoding];
//用格式符来创建
NSString * str10 = [NSStringstringWithFormat:@"%@%d", str7,123];
NSString * str11 = [NSStringstringWithContentsOfFile:@"/Users/qianfeng/Desktop/笔记本使用注意事项.txt" encoding:NSUTF8StringEncoding error:nil];
2、不可变字符串(NSString)的常见操作
(1)获取字符串长度
NSUInteger i = [str1length];
(2)获取字符
//获取某个下标的字符
//参数:下标
unichar c = [str1 characterAtIndex:3];
(3)判断字符串相等
//比较两个字符串是否相等,返回值BOOL类型,只有两个值: YES或 NO
BOOL b = [str1 isEqualToString:str2];
(4)字符串比较
// 返回值类型是NSComparisonResult是一个枚举值
// 其取值范围有三个:
// NSOrderedAscending = -1L, 从左向右是上升趋势,所以左边小于右边
// NSOrderedSame, 相等
// NSOrderedDescending 从左往右是下降趋势,所以左边小于右边
NSComparisonResult result = [str1 compare:str2];
if (result == NSOrderedAscending) {
NSLog(@"str1 < str2");
}elseif(result == NSOrderedDescending){
NSLog(@"str1 > str2");
}elseif (result == NSOrderedSame){
NSLog(@"str1 == str2");
}
(5)字符串查找
NSString * str1 = @"abcdefg";
NSRange range1 = [str1 rangeOfString:@"fg"];
// typedef struct _NSRange {
// NSUInteger location;
// NSUInteger length;
// } NSRange;
// NSRange是一个结构体,有两个成员变量
// NSUInteger location;开始的位置
// NSUInteger length; 长度
NSLog(@"位置:%lu 长度%lu", range1.location, range1.length);
(6)判断前后缀
//从字符串0下标开始往后查,只要不断篇,都是字符串的前缀
//判断字符串的前缀
BOOL b = [str1 hasPrefix:@"abcd”];
//判断字符串的后缀
BOOL b1 = [str1 hasSuffix:@"abcdef"];
(7)数字字符串转化
NSString * str = @"123”;
NSLog(@"%i", [strintValue]);
NSLog(@"%f", [strfloatValue]);
NSLog(@"%f", [strdoubleValue]);
NSLog(@"%li", [strintegerValue]);
NSLog(@"%lli", [strlongLongValue]);
NSLog(@"%i", [strboolValue]);
(8)大小写转换
NSString * str1 = @"abcd";
NSString * str2 = @"HELLO WORLD";
//转换成大写
NSString * str3 = [str1 uppercaseString];
//转换成小写
NSString * str4 = [str2 lowercaseString];
//将字符串的单词 首字母改为大写
NSString * str5 = [str2 capitalizedString];
(9)字符串提取
NSString * str =@"abcdefghigdasd";
//从指定位置开始,截取到字符串结束,并且包含指定位置 闭区间
NSString * str1 = [str substringFromIndex:6];
//从开始的位置,截取到指定的位置,但是不包含指定的位置 开区间
NSString * str2 = [str substringToIndex:4];
//从指定的位置开始截取,截取指定的长度包含指定的位置 闭区间
NSRange range = {4,3};
NSString * str3 = [str substringWithRange:range];
(10)在字符串后面追加字符串
//在字符串后面追加字符串
NSString *string7 = [string6 stringByAppendingString:@"1234567"];
3、可变字符(NSMutableArray)串常见操作
(1)增加字符串
NSMutableString * muStr = [NSMutableStringstringWithFormat:@"12345"];
//给字符串追加内容
[muStrappendString:@"67"];
[muStrappendFormat:@"%d",89];
(2)删除字符串
NSMutableString * str = [[NSMutableStringalloc] initWithFormat:@"%d",123456];
NSRange range = {2,2};
[str deleteCharactersInRange:range];
(3)修改字符串
NSMutableString * str = [[NSMutableStringalloc] init];
[strsetString:@"13113313192"];
NSRange range = {3,4};
//第一个参数:给定要替换的字符串开始位置和长度
//第二个参数:给定要替换成的字符串
[str replaceCharactersInRange:rangewithString:@"****"];
(4)插入字符串
NSMutableString * str = [[NSMutableStringalloc] init];
[strsetString:@"1233456"];
[str insertString:@"***"atIndex:3];