1、NSString介绍和使用
• 一个NSString对象就代表一个字符串(文字内容)
• 一般称NSString为字符串类。
• 文字内容普遍都是用NSString来表示的。
2、NSString创建方法
• 1)直接创建字符串(常量字符串):
NSString *str1 = @"This is a string";
• 2)格式化(拼接)字符串(堆区):
int age = 10;
age = 20;
NSString *str2 = [NSString stringWithFormat:@"我今年%d岁,%@",age,str1];
NSLog(@"str2 - %@",str2);
• 3)转换C语言字符串
char *s = "c字符串";
NSString *str3 = [NSString stringWithUTF8String:s];
3、NSString字符串比较
1、NSString的大小写处理
-(Nsstring *)uppercaseString;//全部字符转换为大写
NSString *str1 = @"abcdefgh";
NSString *str2 = [str1 uppercaseString]; //uppercaseString - 是把小写变大写,返回的是一个新的字符串
NSLog(@"str2 - %@",str2);
NSLog(@"str1 - %@",str1);
-(Nsstring *)lowercaseString//lowercaseString - 把大写变小写的方法
NSString *str3 = [str2 lowercaseString];//返回的依然是一个新的字符串
NSLog(@"str3 - %@",str3);
-(Nsstring *)capitalizedString //capitalizedString - 把首字母变大写
NSString *str4 = @"i love china";
NSString *str5 = [str4 capitalizedString];
NSLog(@"str5 - %@",str5);
2、字符串的比较
-
1、两个字符串的内容相同就返回YES, 否则返回NO
-(Bool)isEqualToString:(Nsstring *)aString
NSString *str1 = @"this is b string";
NSString *str2 = @"this is a string";
BOOL isSame = [str1 isEqualToString:str2];//isEqualToString - 是不是相同
NSLog(@"isSame - %d",isSame);//两个字符串的内容相同就返回YES, 否则返回NO
-
2、这个方法可以用来比较两个字符串内容的大小
NSString *str1 = @"this is b string";
NSString *str2 = @"this is a string";
NSLog(@"compare - %ld",(long)[str1 compare:str2]);
//compare - 和c语言字符串比较类似
//两个字符串相同返回0 ; 左边 < 右边 返回-1 ; 左边 > 右边 1
-
比较方法: 逐个字符地进行比较ASCII值,只要有一个值能够比较出大小,就不再
继续比较。返回NSComparisonResult作为比较结果
NSComparisonResult是一个枚举,有3个值
如果左侧 < 右侧,返回NSOrderedAscending
如果左侧 > 右侧,返回NSOderedDescending,
如果左侧 == 右侧,返回NSOderedSame
-(NSComparisonResult)caseInsensitiveCompare:(NSString *)string//忽略大小写进行比较,返回值与compare一样
• 另外,在使用compare方法时可以添加参数来决定是否区分大小写,或者声明为比 较字符串个数而不是字符值等比较条件
4、NSString前后缀检查及搜索
1、字符串前后缀检查
1> 前缀检查--是否以www.baidu开头
NSString *str1 = @"www.baidu.com";
BOOL isPre = [str1 hasPrefix:@"www.baidu"]; //hasPrefix - 检查前缀是否是www.baidu
NSLog(@"is - %d",isPre);
2> 后缀检查--是否以.com结尾
BOOL isSuf = [str1 hasSuffix:@".com"];
NSLog(@"isSuf - %d",isSuf);
2、字符串查找
//用来检查字符串内容中是否包含了aString
//如果包含,就返回aString的范围
//如果不包含,NSRange的location为NSNotFound,length为0
-(NSRange)rangeOfString:(NSString *)astring
3、NSRange介绍
○ NSRange是Foundation框架中比较常用的结构体, 它的定义如下:
○ NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组 里的元素范围。
• NSRange有2个成员
○ 如何创建NSRang
NSRange range = NSMakeRange(7,3);
5、字符串的截取和替换
NSString *str1 = @"在笔直的道路上蜿蜒前行";
NSString *str2 = [str1 substringWithRange:rang];//substringWithRange - 按照你给的range取字符串
//生成一个新的字符串
NSString *str2 = [str1 substringFromIndex:4];//从当前位 到 尾部
NSLog(@"str2 - %@",str2);
NSString *str3 = [str1 substringToIndex:4];//substringToIndex 从首位到当前位
NSLog(@"str3 - %@",str3);
//字符串的替换函数 - stringByReplacingOccurrencesOfString
NSString *str4 = @"www.baidu.com";
NSString *str5 = [str4 stringByReplacingOccurrencesOfString:@"baidu" withString:@"SIS"];
//@"baidu"被替换的内容;@"SIS"替换的内容
6、NSString的其他用法
1、获取字符串长度
NSString *str = @"0123456";
NSLog(@"str - %lu",(unsigned long)[str length]);
str = @"我爱中国01234aaa";
NSLog(@"str - %lu",(unsigned long)[str length]);
2、获取具体位置的字符
//characterAtIndex - 字母在位置
str = @"0123456";
char a = [str characterAtIndex:0];
3、字符串和其他数据类型转换
-(double)doubleValue;
- ( float )floatValue;
-(int)intValue;
NSString *str2 = @"233.342423";
NSLog(@"str2 - int - %lf",str2.doubleValue);