创建字符串的4种方法
NSString *s = @"这个是第一种"; //1.特殊用法
NSString *s1 = [NSString new];
s1 = @"这是第二种";
NSLog(@"%@",s1); //2.理论用法
for (int i = 0; i<10; i++) {
NSString *imgName = [NSString stringWithFormat:@"xxxxx%02d.jpg",i];
NSLog(@"%@",imgName); //3.格式化创建字条串
}
//4.用一个已经存在的字符串创建一个样的字符串
NSString *s2 = [[NSString alloc]initWithString:s1];
NSLog(@"s2 = %@",s2);
NSString字符串长度计算(length方法)
NSString *str = @"ican";
NSUInteger len = [str length];
NSLog(@"str length:%ld",len); //一定是%ld,打印4
NSString字符串:取出对应位置的字符
unichar ch = [str characterAtIndex:0]
//取出字符串str下标为0的对应字符,返回unichar类型值
NSString字符串:比较字符串大小
-
无条件
//compare 方法返回结果有3种:
NSOrderedAscending(升序「-1」),
NSOrderedSame「0」,
NSOrderedDescending(降序「1」)
NSString *str1 = @"abc";
NSString *str2 = @"bcd";NSComparisonResult result = [str1 compare:str2]; printf("%ld",result); //打印结果为-1(升序)
-
有条件(可以有多个条件)
/*compare 常用的3个条件:
NSCaseInsensitiveSearch:不区分大小写字符
NSLiteralSearch:进行完全比较,区分大小写(默认)
NSNumericSearch:比较字符串的字符个数,而不是字符值
*/
NSString *str1 = @"abc";
NSString *str2 = @"Abc";
//可以添加多个比较条件
NSComparisonResult result =
[str1 compare:str2 options:NSCaseInsensitiveSearch|NSNumericSearch];
printf("%ld",result); //打印结果为0
NSString字符串:判断字符串是否相等
[str1 isEqualToString:str2] //返回BOOL值
NSString字符串前后缀检查
-
前缀
NSString *url = @"https://ios,itcast.cn"; //检测一个字符串的前缀是否是http://或者https://开头 //[str hasPrefix:@"要检测的内容"]; if ([url hasPrefix:@"http://"]||[url hasPrefix:@"https://"]) { printf("这是一个网址"); }else{ printf("这不是一个网址"); }
-
后缀
NSString *imgName = @"xxxxx.jpg"; //检测一个字符串的后缀是否是.jpg //[str hasSuffix:@"要检测的内容"]; if ([url hasSuffix:@".jpg"]) { printf("这是一个jpg图片"); }else{ printf("这不是一个jpg图片"); }
NSString字符串的查找
-
查找某个字符串在另外一个字符串中首次出现的位置
NSString *str1= @"slkioslkgilkdiosflgkhldsiosfndslfdsn";
NSString *str2= @"ios";//查找2在1中首次出现的位置 //range 结构体变量 NSRange 结构体别名 //如果查找不到location返回NSNotFound,length返回0 NSRange range = [str1 rangeOfString:str2]; NSLog(@"%lu,%lu",range.location,range.length);
把结构体转换成NSString类型
NSLog(@"%@",NSStringFromRange(r4)); //r4为结构体变量
字符串的截取
-(NSString *)substringFromIndex:(NSUInteger)from;
从**指定位置**from开始(包括指定位置的字符)到尾部
-(NSString *)substringToIndex:(NSUInteger)to;
从字符串的开头一直截取到**指定的位置**to,但不包括该位置的字符
-(NSString *)substringWithRange:(NSRange)range;
按照所给出的NSRange从字符串中截取字符串
如:[str substringWithRange:NSMakeRange(4,10)];//不清楚就看NSRange的概念和使用
NSString字符串的替换
-(NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *) replacement
//用replacement替换target,返回替换后的字符串
NSString和其他类型的转换
NSString *str = @"1";
int a = 19;
//把字符串类型转换成其他类型
int b = [str intValue]; //intValue,floatValue,doubleValue
sum = a+b;
NSString去除首尾空格
[str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];//返回去除后的字符串
//其他参数:
屏幕快照 2015-09-04 22.13.54.png-
OC字符串和C字符串的互相转换
char *s = "zhangsanfeng";
printf("%s\n",s);//用C语言创建一个OC的字符串 NSString *str = [NSString stringWithUTF8String:s]; //相反的用[str2 UTF8String] NSLog(@"str = %@",str);
网友评论