NSString的一些用法
来源:互联网 发布:mac上的翻墙软件 编辑:程序博客网 时间:2024/06/08 02:47
字符串的创建
- 通过字符串常量创建,字符串对象存储在常量区
NSString *str = @"AA";
- 如果通过allocinitWithFormat、stringWithFormat创建,字符串对象存储在堆区
NSString *str1 = [[NSString alloc]initWithFormat:@"BB"]; NSString *str2 = [NSString stringWithFormat:@"CC"];
- 如果通过allocinitWithString,这个方法是通过copy返回一个字符串,而copy分为深拷贝和浅拷贝,如果是深拷贝会创建一个新对象,如果是浅拷贝则不会创建一个新对象,而是直接返回被拷贝的对象的地址,而allocinitWithString正是浅拷贝
NSString *str3 = [[NSString alloc]initWithString:@"DD"];
字符串的比较
NSString *a = @"abce"; NSString *b = @"abcd"; //比较俩个字符串的内容 BOOL flag = [a isEqualToString:b]; NSLog(@"%i",flag); //比较俩个字符串的地址 BOOL flag1 = a == b; NSLog(@"%p--%p",&a,&b); NSLog(@"%i",flag1); //比较俩各字符串的大小 NSOrderedAscending = -1, NSOrderedSame, NSOrderedDescending switch ([a compare:b]) { case -1: NSLog(@"前面小于后面"); break; case 0: NSLog(@"相等"); break; case 1: NSLog(@"前面大于后面"); break; default: break; } //忽略大小写 NSOrderedAscending = -1, NSOrderedSame, NSOrderedDescending switch ([a caseInsensitiveCompare:b]) { case -1: NSLog(@"前面小于后面"); break; case 0: NSLog(@"相等"); break; case 1: NSLog(@"前面大于后面"); break; default: break; }
字符串的搜索
NSString *string = @"https://abcdsdfghj34567890.txt"; //判读以什么开头 if ([string hasPrefix:@"https:"]){ NSLog(@"yes"); } //判读以什么结尾 if ([string hasSuffix:@"txt"]){ NSLog(@"yes"); } NSRange range = [string rangeOfString:@"345"]; NSLog(@"location=%lu,length = %lu",(unsigned long)range.location,(unsigned long)range.length);
字符串的截取
NSString *string = @"<head>title</head>"; //静态截取 NSRange range = NSMakeRange(6, 3);// range.location = 6// range.length = 3; NSString *str = [string substringWithRange:range]; NSLog(@"%@",string); NSLog(@"%@",str); //动态截取 //1、动态获取起始位置 NSUInteger location = [string rangeOfString:@">"].location + 1; //2、动态获取长度(rangeOfString是从左至右,只要找到就不找了) NSUInteger length = [string rangeOfString:@"</"].location - location; NSRange range1 = NSMakeRange(location, length); NSString *str1 = [string substringWithRange:range1]; NSLog(@"%@",string); NSLog(@"%@",str1); //从什么地方开始截取,一直截取到最后 NSString *str2 = [string substringFromIndex:3]; //从开头开始截取,一直截取到什么位置 NSString *str3 = [string substringToIndex:6]; NSLog(@"%@",str2); NSLog(@"%@",str3);
字符串的替换
NSString *string = @"<head>title</head>"; NSString *str = [string stringByReplacingOccurrencesOfString:@"title" withString:@"button"]; NSLog(@"%@",string); NSLog(@"%@",str);
字符串和路径
NSString *string = @"/Users/user/Desktop/APPS.txt"; NSLog(@"%@",string); if([string isAbsolutePath]){ NSLog(@"绝对路径"); } //获取文件路径中最后一个目录(本质是获取路径中最后一个/后面的内容) NSString *str = [string lastPathComponent]; NSLog(@"%@",str); //删除文件路径中最后一个目录(本质是删除路径中最后一个/后面的内容) NSString *str1 = [string stringByDeletingLastPathComponent]; NSLog(@"%@",str1); //给文件路径添加一个目录(本质是给路径末尾加上一个/和指定内容,若路径后面有多个,那么会删除多个,最终只保留一个) NSString *str2 = [string stringByAppendingPathComponent:@"img"]; NSLog(@"%@",str2); //获取路径中文件扩展名(本质是从字符串末尾开始查找,截取第一个. 后面的内容) NSString *str3 = [string pathExtension]; NSLog(@"%@",str3); //删除路径中文件扩展名(本质是从字符串末尾开始查找,删除第一个. 后面的内容) NSString *str4 = [string stringByDeletingPathExtension]; NSLog(@"%@",str4); //添加路径中文件扩展名(本质是从字符串末尾开始查找,添加第一个. 和指定的内容) NSString *str5 = [string stringByAppendingPathExtension:@"jpg"]; NSLog(@"%@",str5);
字符串转换
NSString *string = @"aBc"; NSLog(@"%@",string); //转大写 NSLog(@"%@",string.uppercaseString); //转小写 NSLog(@"%@",string.lowercaseString); //首字母转大写 NSLog(@"%@",string.capitalizedString); //字符串转基本数据类型 NSString *string1 = @"123"; NSLog(@"%ld",(long)string1.integerValue); //C语言字符串转OC字符串 char *cStr = "apple"; NSLog(@"%@",[NSString stringWithUTF8String:cStr]); //OC语言字符串转C字符串 const char *cStr2 = [string UTF8String]; NSLog(@"%s",cStr2);
阅读全文
0 0
- NSString的一些用法
- NSString的一些用法
- NSString的一些用法
- 关于NSString的一些用法
- IOS开发NSString的一些用法
- 关于Nsstring的一些基本用法
- NSString 一些常用用法
- NSMutableString与NSString一些用法
- 黑马程序员——OC 基础:NSString的一些用法
- nsstring 的一些细节
- NSString的一些方法
- NSString 的一些操作
- NSString的一些使用方法
- NSString 的一些笔记
- NSString的用法
- NSString 的比较用法
- NSString的分隔用法
- NSString 的比较用法
- mybatis自动生成主键
- SQL子查询
- 答辩ppt学习
- linux命令终极系列awk
- PHP 实现四种基本排序算法
- NSString的一些用法
- [iOS ]POST git-receive-pack (chunked)
- keil编译出现Warning: L6304W: Duplicate input file .\output\system_stm32f2xx_1.o ignored.解决办法
- Windows下,VS2013/MinGW编译FFMPEG 3.3.1版本
- Dorado7增删改查SQL自动生成
- Linux下python3.6.1的安装
- IO转String使用了java.nio.Buffer
- iOS项目中的iframe不能访问外部链接,出现空白的解决办法
- Linux Shell 时间运算以及时间差计算方法