1.NSString的介绍编程
2.NSString的初始化api
NSString *str = @"我是一个字符串";
这是一个常量字符串,值不能修改。数组
第一种方式:框架
NSString *str1 = [NSString StringWithFormat:@"这是一个拼接字符串"];
第二种方式:this
int age = 20; NSString *str1 = @"我今年"; NSString *str2 = @"岁了"; NSString *str2 = [NSString stringWithFormat:@"%@%d%@",str1,age,str2];
能够拼接接多个参数spa
char *s = "c字符串转换"; NSString *str = [NSString stringWithUTF8String:s]; NSLog(@"%@",str);
直接printf("%s",s)是不支持的。code
3.NSString字符串的比较orm
两个字符串的内容相同就返回YES, 不然返回NO :isEqualToString对象
NSString *str1 = @"this is b string"; NSString *str2 = @"this is a string"; BOOL isSame = [str1 isEqualToString:str2]; NSLog(@"isSame - %d",isSame);
比较两个字符串内容的大小 :compare继承
NSString *str1 = @"this is b string"; NSString *str2 = @"this is a string"; NSLog(@"compare - %ld",(long)[str1 compare:str2]);
字符串的比较是依次比较每一个字符的ASCII值,只要有一个字符比较出结果就中止比较;返回(NSComparisonResult)做为比较结果 ;NSComparisonResult是一个枚举,只有三个值,若是左边<右边,返回-1;若是左边>右边,返回1;若是相等,返回0。
字符串忽略大小写的比较:caseInsensitiveCompare
NSString *str1 = @"this is b string"; NSString *str2 = @"this is B string"; NSLog(@"compare - %ld",(long)[str1 caseInsensitiveCompare:str2]);
因为忽略大小写,因此返回值为0,str1和str2相同。
4.NSString大小写处理
NSString *str1 = @"abcdefgh"; NSString *str2 = [str1 uppercaseString];
uppercaseString - 是把小写变大写,返回的是一个新的字符串
大写变小写:lowercaseString
NSString *str1 = @"ABCDEFG"; NSString *str2 = [str1 lowercaseString];
capitalizedString - 是把大写变小写,返回的也是一个新的字符串
首字母变大写,其余字母变小写:capitalizedString
NSString *str1 = @"thisIFSsbstring"; NSString *str2 = [str1 capitalizedString]; NSLog(@"%@",str2);
输出结果:Thisifssbstring。返回的一样是一个新的字符串。
5.NSString先后缀检查及搜索
NSString *str1 = @"www.baidu.com"; BOOL isPre = [str1 hasPrefix:@"www.baidu"]; NSLog(@"is - %d",isPre);
检查前缀是不是www.baidu,若是是,返回1,不然返回0
检查后缀是不是XXX:hasSuffix
NSString *str1 = @"www.baidu.com"; BOOL isSuf = [str1 hasSuffix:@".com"]; NSLog(@"is - %d",isSuf);
检查后缀是不是.com,若是是,返回1,不然返回0
NSString *str = @"www.baidu.com"; NSRange rang = [str1 rangeOfString:@"com"]; NSLog(@"loc - %ld,len - %ld",rang2.location,rang2.length);
rangeOfString - 查找具体字符串的位置和长度
6.字符串的截取和替换
NSString *str1 = @"我在编程道路上匍匐前行"; NSString *str2 = [str1 substringFromIndex:4]; NSLog(@"str2 - %@",str2);
输出结果:道路上匍匐前行
从首位截取到指定位置:substringToIndex
NSString *str1 = @"我在编程道路上匍匐前行"; NSString *str2 = [str1 substringToIndex:7]; NSLog(@"str2 - %@",str2);
输出结果:我在编程道路上
按照所给的NSRange从字符串中截取:substringWithRange
NSString *str1 = @"我在编程道路上匍匐前进"; //建立NSRange NSRange rang = NSMakeRange(4, 5); //4表示位置,5表示长度 NSString *str2 = [str1 substringWithRange:rang]; NSLog(@"str2 - %@",str2);
NSRange是Foundation框架中比较经常使用的结构体, 定义了两个属性location(位置)和length(长度);NSRange用来表示事物的一个范围,一般是字符串里的字符范围或者数组 里的元素范围。
NSString字符串的替换:stringByReplacingOccurrencesOfString
NSString *str1 = @"www.baidu.com"; NSString *str2 = [str4 stringByReplacingOccurrencesOfString:@"baidu" withString:@"SIS"]; NSLog(@"str2 - %@",str2);
输出结果:www.SIS.com
7.NSString的其余用法
NSString *str = @"前进前进前进112412"; NSLog(@"str - %lu",(unsigned long)[str length]);
输出结果:12
得到具体位置的字符:characterAtIndex
str = @"0123asd"; char a = [str characterAtIndex:0]; //经过字符遍历整个字符串 for (int i = 0; i < [str length]; i++) { NSLog(@"i - %c",[str characterAtIndex:i]); }
若是字符串中有汉字,得到的字符是乱码
字符串和其余数据类型的转换:
//字符串类型转int型 NSString *str2 = @"233"; NSLog(@"str2 - int - %d",str2.intValue); //字符串类型转double型 NSString *str2 = @"233.342423"; NSLog(@"str2 - int - %lf",str2.doubleValue); //字符串类型转double型 NSString *str2 = @"233.342423"; NSLog(@"str2 - int - %f",str2.floatValue);