捡起去年学习的iOS,从基础开始,一步一步,完成它!
一、iOS之NSString
NSString主要是针对字符串的一套用法,主要功能有:
(1)字符串显示(直接显示,间接显示)
(2)字符串截取,拼接,替换,比较,分割,遍历,转换
1.字符串显示
//初始化
//方法一:
NSString *astring= @"how are you";
NSLog(@"astring %@ ",astring);
NSLog(@"astring %@ %@",@"hi",astring);
//可变字符串创建:
NSMutableString *mstr1 = [[NSMutableString alloc] initWithFormat:@"zxcvbnm"];
NSMutableString *mstr2 = [NSMutableString stringWithFormat:@"asdfghjkl"];
[mstr1 insertString:@"1111" atIndex:1];//从第一个位置插入
NSLog(@"ms1 :%@",mstr1);//ms1 :z1111xcvbnm
// 设置新的字符串
[mstr3 setString:@"000000000"];
NSLog(@"new_mstr3:%@",mstr3);
//方法二:
//NSString * str =[[NSString alloc] initWithString:@"this is from initWithString function"];系统会显示此方法多余,改为第一种方法
//三、实例化
//1、initWithFormat是实例方法,只能通过一下方法调用,但是必须手动release来释放内存资源
NSString* str = [[NSString alloc] initWithFormat:@"%@",@"Hello World"];
//2、stringWithFormat是类方法,可以直接用调用以下方法,内存管理上是autorelease的,不用手动显式release
NSString* str = [NSString stringWithFormat:@"%@",@"Hello World"];
2.字符串截取
NSString *str1 = @"1234567";
NSLog(@"长度: %ld",str1.length);//(长度: 7)
NSLog(@"字符串对应下标:%c",[str1 characterAtIndex:2]);//(字符串对应下标: 3)
//截取指定位置的字符串(substringFromIndex:a)从a开始到字符串结束
NSLog(@"%@",[str1 substringFromIndex:2]);//(34567)
//从0开始截取到指定位置字符串(substringToIndex:a)从0开始到a结束,不包括a
NSLog(@"%@",[str1 substringToIndex:2]);//(12)
//截取指定范围字符串(NSMakeRange(a,b)从字符串左边数的a开始,到字符串从右边数的b结束)包括a,b
NSLog(@"%@",[str1 substringWithRange:NSMakeRange(2, 2)]);//(345)
3.字符串拼接
NSString *str3 = @"a";
NSString *str4 = [str3 stringByAppendingString:@"5"];
NSLog(@"%@",str4);//a5
NSString *str5 = [str4 stringByAppendingPathComponent:@"De"];
NSLog(@"%@",str5);//a5/De
NSString *str12 = [[NSString alloc] initWithFormat:@"%@%@",str10,str11];
NSLog(@"str12 :%@",str12);//str12 :aa5
4.字符串替换
NSString *str6 = @"哈哈,瞅你咋地";
//直接替换
NSString *str7 = [str6 stringByReplacingOccurrencesOfString:@"哈哈" withString:@"嘿嘿"];
NSLog(@"%@",str7);//嘿嘿,瞅你咋地
NSString *str8 = @"你在干嘛呢";
//范围替换stringByReplacingCharactersInRange:NSMakeRange(1, 3)从第1个字符到第3个字符(包括)替换
NSString *str9 = [str8 stringByReplacingCharactersInRange:NSMakeRange(1, 3) withString:@"不累"];
NSLog(@"%@",str9);//你不累呢
5.字符串比较
NSString *str11 = @"1";
NSString *str10 = @"123";
//判断字符串是否以abc开头
BOOL flag = [str10 hasPrefix:@"abc"];
NSLog(@"%zd",flag);//0
//判断字符串是否以3结尾
BOOL flag1 = [str10 hasSuffix:@"3"];
NSLog(@"%zd",flag1);//1
//str10是否包含str11
NSLog(@"%d",[str10 containsString:str11]);//1
//升降序比较
NSString *str1 = @"abcd";
NSString *str2 = @"ABCD";
NSComparisonResult result = [str1 compare:str2];
// caseInsensitiveCompare 忽略大小写比较
// NSComparisonResult result2 = [s7 caseInsensitiveCompare:s8];
if (result == NSOrderedAscending) {
NSLog(@"升序");
} else if(result == NSOrderedSame) {
NSLog(@"相同");
} else if(result == NSOrderedDescending) {
NSLog(@"降序");
}
6.字符串分割
NSString *str12 = @"我,是,谁,我,在,哪";
NSArray *array = [str12 componentsSeparatedByString:@","];
for (NSString *str in array) {
NSLog(@"%@",str);
}
//取出字符串"123|456|789|000"中的数字部分,组成一个新的字符串输出
NSMutableString *strm = [NSMutableString stringWithString:@"123|456|789|000"];//只有可变字符串有这个方法
[strm replaceOccurrencesOfString:@"|" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, strm.length)];
NSLog(@"%@",strm);//123456789000
7.字符串遍历
NSString *str13 = @"abc\n ddef \n 123";
//根据\n一行一行的返回
[str13 enumerateLinesUsingBlock:^(NSString * _Nonnull line, BOOL * _Nonnull stop) {
NSLog(@"line:%@",line);
/*返回结果:
line:abc
line: ddef
line: 123
*/
}];
//用指定字符串分割字符串,返回一个数组
NSString *str14 = @"1,2,3,4,5,6";
NSArray *array1 = [str14 componentsSeparatedByString:@","];
NSLog(@"array1:%@ %zd",array1,array1.count);
/*返回结果:
array1:(
1,
2,
3,
4,
5,
6
) 6
*/
}
8.字符串转换
//1.大小写转换
NSString *str15 = @"aABBCCbbaacc1234";
NSLog(@"大写:%@",[str15 uppercaseString]);//大写:AABBCCBBAACC1234
NSLog(@"小写:%@",[str15 lowercaseString]);//小写:aabbccbbaacc1234
NSLog(@"首字母变大写,其他为小写:%@",[str15 capitalizedString]);//首字母变大写,其他为小写:Aabbccbbaacc1234
//2.转为基本数据类型,只能是数字字符串可以转化
NSString *str9 = @"1234";
int value1 = [str9 intValue];
float value2 = [str9 floatValue];
double value3 = [str9 doubleValue];
BOOL value4 = [str9 boolValue];
NSLog(@"value1 = %d",value1);//value1 = 1234
NSLog(@"value2 = %f",value2);//value2 = 1234.000000
NSLog(@"value3 = %lf",value3);//value3 = 1234.000000
NSLog(@"value4 = %d",value4);//value4 = 1