[Objective-C] 007_Foundation框架之NSString与NSMutableString
2024-09-07 14:12:06
在Cocoa Foundation中的NSString和NSMutableString类,为我们提供了Unicode字符串的支持,NSString和NSMutableString类最大的区别是:NSString--创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。NSMutableString--创建赋值以后可以动态在该字符串上更改内容与长度。下面是NSString和NSMutableString类的一些常用操作。
1.NSString 创建常量字符串。
NSString *str = @"我是一个字符串 -- This is a String!";
2.NSString 创建空字符,并赋值
NSString *str = [[NSString alloc] init];
str = @"www.babybus.com";
NSLog(@"str内容:%@",str);
[astring release];
NSString *str2 = [[NSString alloc] initWithString:@"www.babybus.com"];
NSLog(@"str2:%@",str2);
[str2 release]; //用标准c创建字符串:initWithCString方法
char *c_str = "www.babybus.com"
NSString *str3 = [[NSString alloc] initWithCString:c_str];
NSLog(@"str3:%@",str3);
[str3 release]; //创建格式化字符串:占位符
NSString *str4 = [[NSString alloc] initWithString:[NSString stringWithFormat:@"宝宝巴士拥有%d用户了",70000000]];
NSLog(@"str4:%@",str4);
[str4 release]; //从文件初始化字符串
NSString *path = [[NSBundlemainBundle] pathForResource:@"test" ofType:@"text"];
NSString *str = [[NSString alloc] initWithContentsOfFile:path];
NSLog(@"str:%@",str);
[str release];
3.NSString 内容写入文件
//获取Documents
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) firstObject];
//路径拼接
NSString *fielPath = [documentsPath stringByAppendingPathComponent:@"str.txt"]; NSString *str = [[NSString alloc] initWithString:@"www.babybus.com"];
NSLog(@"str:%@",str);
[str writeToFile:fielPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
[str release];
4.NSString 字符内容比较
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = @"www.babybus.com";
BOOL result = [str_1 isEqualToString:str_2];
if (result) {
NSLog(@"内容相同...");
}else {
NSLog(@"不好意思,内容不同");
}
//NSOrderedSame判断两者内容是否相同
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = @"www.babybus.com";
BOOL result = [str_1 compare:str_2] == NSOrderedSame;
NSLog(@"result:%d",result); //NSOrderedAscending判断两对象值的大小(按字母顺序进行比较,str_2大于str_1为真)
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = @"www.babybus.com";
BOOL result = [str_1 compare:str_2] == NSOrderedAscending;
NSLog(@"result:%d",result); //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,str_2小于str_1为真)
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = @"www.babybus.com";
BOOL result = [str_1 compare:str_2] == NSOrderedDescending;
NSLog(@"result:%d",result);
5.NSString 不考虑大小写内容比较
NSString *str_1 = @"WWW.BABYBUS.COM";
NSString *str_2 = @"www.babybus.com";
//NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较,区分大小写 NSNumericSearch:比较字符串的字符个数,而不是字符值。
BOOL result = [str_1 compare:str_2 options:NSCaseInsensitiveSearch | NSNumericSearch] == NSOrderedSame;
NSLog(@"result:%d",result);
6.NSString 输出大写或者小写字符串
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = @"Good babybus";
NSLog(@"str_1:%@",[str_1 uppercaseString]);//大写
NSLog(@"str_2:%@",[str_2 lowercaseString]);//小写
NSLog(@"str_2:%@",[str_2 capitalizedString]);//首字母大小
7.NSString 查找字符串是否包含其它字符串
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = @"babybus";
NSRange range = [str_1 rangeOfString:str_2];
if (range.location != NSNotFound) {
NSLog(@"找到了%@",str_2);
}
8.NSString 截取字符串
//substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = [str_1 substringToIndex:3];
NSLog(@"string2--->:%@",str_2); //substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = [str_1 substringFromIndex:3];
NSLog(@"string2--->:%@",str_2); //substringWithRange: 按照所给出的位置,长度,任意地从字符串中截取子串
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = [str_1 substringWithRange:NSMakeRange(0, 4)];
NSLog(@"string2--->:%@",str_2);
9.NSString 是否以某一字符串开头或者结尾
NSString *str = @"http://wwww.babybus.com";
if([String1 hasPrefix:@"http://"] == 1) {
NSLog(@"http://开头") ;
} if([String1 hasSuffix:@"com"] == 1) {
NSLog(@"com结尾") ;
}
10.NSString 获取后缀名
NSString *Path = @"User/SuperDo/string.txt";
NSLog(@"Extension:%@",[Path pathExtension]);
11.NSString 获取拓展路径
NSString *Path = @"User/SuperDo/str.txt";
NSString *absolutePath = [Path stringByExpandingTildeInPath];
NSLog(@"absolutePath:%@",absolutePath);
NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);
12. NSMutableString 字符串拼接
//末尾拼接
NSMutableString *str_1 = [[NSMutableString alloc] initWithString:@"www.babybus.com"];
[str_1 appendString:@",good"];
[str_1 appendFormat:@"go --------->"];
NSLog(@"String1:%@",str_1);
//在指定位置插入
NSMutableString *str = [[NSMutableString alloc] initWithString:@"www.babybus.com"];
[str insertString:@"Hi! " atIndex:0];
NSLog(@"str:%@",str);
13.NSMutableString 替换字符串
NSMutableString *str = [[NSMutableString alloc] initWithString:@"www.babybus.com is NSMutableString"];
[str replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"];
NSLog(@"str:%@",str);
本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士)
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4584355.html
最新文章
- .net core和angular2之前端篇—1
- jQuery入门(1)jQuery中万能的选择器
- AS与.net的交互——加载web上的xml
- thinkphp 行为扩展以及插件机制介绍
- python logging模块 basicConfig配置文件
- linux /etc/rc.d/目录的详解
- VirtualBox虚拟vdi磁盘扩容
- CSS Pseudo-Element Selectors伪对象选择符
- STL 之 vector 用法
- 最短路径问题/Spfa
- 100 - k8s源码分析-准备工作
- Vim设置Tab宽度/替换Tab为空格
- iis 支持 .netcore 环境
- Ruby on rails 项目启动流程
- 020100——00002_OS库
- poj3253 Fence Repair(贪心+哈夫曼 经典)
- cf——Sasha and a Bit of Relax(dp,math)
- 【mysql】数据库Schema的优化
- rabbitmq 二进制安装
- Apache JMeter2.13 实战