Foundation--NSString , array and Dictionary
一,NSString的创建
NSString*str=@" a string ";//直接创建一个字符串常量,这样创建出来的字符串不需要释放内存
NSLog(@"%@",str );
NSString *str2=[[NSString alloc]init];
str2=@"a string two";
NSLog(@"%@",str2);
[str2 release];
NSString *str3=[[NSStringalloc]initWithString:@"hello"];
NSLog(@"%@",str3);
[str3 release];
NSString *str4=[[NSStringalloc]initWithUTF8String:"utf8string"];//C 语言类型的字符串
NSLog(@"%@",str4);
[str4 release];
NSString *str5=[[NSStringalloc]initWithFormat:@"int=%i, float=%.2f",3,4.5f];
NSLog(@"%@",str5);
[str5 release];
str5=[NSStringstringWithFormat:@"paradigm=%i",5];//静态方法不需要释放内存
NSLog(@"%@",str5);
NSString *str5;
NSString *path=@"/Users/lanou/Desktop/a.txt";
NSError *error;
str5=[NSStringstringWithContentsOfFile:path encoding:NSUTF8StringEncodingerror:&error];//读取文件内容
if (error==nil) {
NSLog(@"%@ ",str5 );
}
NSURL *url=[NSURLURLWithString:@"file:///Users/lanou/Desktop/a.txt"];
str5=[NSStringstringWithContentsOfURL:url encoding:NSUTF8StringEncodingerror:&error];//读取文件内容
if (error==nil) {
NSLog(@"%@ ",str5);
}
NSError * error;
NSURL *url=[NSURLURLWithString:@"http://www.baidu.com"];//获取网页文件内容
NSString* str5=[NSStringstringWithContentsOfURL:url encoding:NSUTF8StringEncodingerror:&error];
if (error==nil) {
NSLog(@"%@",str5);
}
else{
NSLog(@"%@error",error);
}
///字符串写入文件并读取出来
void stringExport()
{
NSString *path=@"/Users/lanou/Desktop/a.txt";
NSString *str=@"write to file";
NSError *error;
[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];,如果文件不存在将创建文件,如果文件路径不存在就会报错.
if (error) {
NSLog(@"error %@",error);
}
else
{
NSLog(@"successifully");
NSString *fileContent=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
if (error) {
NSLog(@"error %@",[error localizedDescription]);//localizedDescription主要错误
}else NSLog(@"%@",fileContent);
}
}
字符串的比较
BOOL b1=[@"hello"isEqualToString:@"hello"];//判断两个字符串的内容是否相同
NSLog(@"%i",b1);
NSComparisonResult b2= [@"4"compare:@"Hell0"];//比较两个字符串的大小
b2的取值范围是三个枚举值:NSOrderedAscending = -1, NSOrderedSame, NSOrderedDescending
NSComparisonResult result= [@"st"caseInsensitiveCompare:@"St"];//忽略字符大小写来比较
字符串的搜索
NSString *str=@"string";
NSLog(@"%i",[str hasPrefix:@"std"]);//是否以**开头
NSLog(@"%i",[str hasSuffix:@"ngg"]);//是否以**结尾
NSString *str=@"string";
NSRange range=[str rangeOfString:@"ring"];//找到字符串的位置
NSLog(@"%@",NSStringFromRange(range));
range=[str rangeOfString:@"tr"options:NSBackwardsSearch];//从后往前搜索
range=[str rangeOfString:@"tr" options:NSBackwardsSearch range:range];//在范围内搜索
字符串截取
NSString *str=@"strtring";
NSRange range=NSMakeRange(2, 2);
NSLog(@"%@",[str substringWithRange:range]);//从第二个字符开始到后面的2个字符
NSLog(@"%@",[str substringToIndex:2]);//从第一个到第二个前面的一个
str=@"1,2,3,4,5";
NSArray *arrs= [str componentsSeparatedByString:@","];//从字符串中分割元素到数组中
for (int i=0; i<arrs.count; i++) {
NSLog(@"%@",arrs[i]);
}
NSLog(@"%@",[arrs objectAtIndex:1]);//获取第index处的元素
// NSString 与路径
NSMutableArray *components=[NSMutableArray array];//把数组中的元素拼接成路径形式的字符串
[components addObject:@"he"];
[components addObject:@"ll"];
[components addObject:@"ow"];
NSLog(@"%@",[NSString pathWithComponents:components]);
NSArray *component=[path pathComponents ];//再把路径分解成数组
NSLog(@"%@",component);
-(BOOL)isAbsolutePath//是否为绝对路径
-(NSString *)lastPathComponent//获取最后一个路径
-(NSString *)stringByDeletingByDeletingLastPathComponent//删除最后一个目录
-[(NSString *)stringByAppendingPathComponent:(NSString *)str//在路径后面加一个目录
课堂笔记要点
-initWithFormat:
-initWithContentsOfFile:encoding:error:
-initWithContentsOfURL:encoding:error:
获取字符串长度-length
-UTF8String把字符串转化为C的字符串
-stringByAppendingFormat: 字符串拼接
分割字符串
NSString *str=@"strtring";
NSLog(@"%@",[str substringFromIndex:2]);//从第二个字符开始到最后
NSLog(@"%@",[str substringToIndex:2]);//从第一个到第二个前面的一个
字符串拓展名
NSString *str=@"test.txt";
NSLog(@"%@",[str pathExtension]);//获取路径拓展名
NSLog(@"%@",[str stringByDeletingPathExtension]);//获取删除拓展名之后的路径
NSLog(@"%@",[str stringByAppendingPathExtension:@"exe"]);//添加拓展名
课堂笔记要点
-componentsSeparatedByString: 字符串分割返回值是数组
-substringFromIndex:
-substringWithRange:
-substringToIndex:
字符串替换
-stringByReplacingOCccurrencesOfString:withString:
-compare:
-hasPrefix:
-hasSuffix:
-isEqualToString:
二,字符串
可变字符串NSMutableString
-appendFormat:
-setString: 设置字符串
重点:
数组创建
NSArray *array=[NSArray array];//声明数组1
array=[NSArray arrayWithObject:@"a"];//声明数组2,初始化一个元素
array= [NSArray arrayWithObjects:@"a",@"b", nil];//声明数组3,初始化很多元素
[array count];//数组元素个数
数组的简单使用
NSArray *array=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
if ([array containsObject:@"a"]) {//数组中是否包含元素a
NSLog(@"array has a!");
}
NSLog(@"%@",[array lastObject]);//获取数组中最后一个元素
NSLog(@"%@",[array objectAtIndex:1]);//获取特定位置的元素
NSLog(@"%zi",[array indexOfObject:@"a"]);
//快速遍历
for (id item in array) {
NSLog(@"%@",item);
}
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {//使用block遍历数组,stop控制停止
NSLog(@"%@%zi",obj,idx);
if (idx==1) {
*stop=YES;
}
}];
数组排序
NSArray *arr=[array arrayByAddingObject:@"cc"];//向数组中添加元素并返回一个新数组
NSLog(@"%@",arr);
NSArray *arr=[array arrayByAddingObjectsFromArray:[NSArray arrayWithObjects:@"aaa",@"bbb", nil]];
NSLog(@"%@",arr);
NSArray *array=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
NSLog(@"%@",[array componentsJoinedByString:@"-"]);//使用分隔符把数组改为字符串
//返回一个排序好的数组,原来的数组内容顺序不变
NSArray *arr=[array sortedArrayUsingSelector:@selector(compare:)];//指定元素的排序方法
NSLog(@"%@",arr);
//NSString 是不可变的,不恩能够删除或添加字符.它的子类 NSMutableString,称为可变字符串
//创建可变字符串的常用方法:
-(id)initWithCapacity:(NSUInteger)capacity
-[(id)stringWithCapacity:(NSUInteger)capacity//capacity只是分配的容量提高操作速度,如果不够用会自动添加
+arrayWithObjects: -initWithObjects: 使用频率最高
+arrayWithContentsOfFile: 从文件读数组
查询数组
-count 数组元素个数,通常用于循环语句 for(int i=0;i<[arr count];i++);
-objectAtIndex: 通常用于循环内部,查询.id obj=[arr objectAtIndex:i];
-firstObject -lastObject
数组比较
-isEqualToArray: 返回bool值
NSMutableArray使用最多
-addObject:
-removeObjectAtIndex:
-removeAllObjects
-removeLastObject
Getting Numeric Values:
-doubleValue ...
NSDictionary不可变添加,删除,修改元素
初始化常用initWithObjectsAndKeys:(id),....nill;
-count 个数
-isEqualToDictionary:
-objectForKey:
key不存在就添加,存在就覆盖,setObject:forKey:
-removeAllObjects
-removeObjectforKey:
NSSet 集合
NSSet,不可变集合
可以存放多个对象,以nil表示结束,对象在set中存储是无序的.
trim的实现
- NSString *string = @" spaces in front and at the end ";
- NSString *trimmedString = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
- NSLog(@"%@",trimmedString) ;
Foundation--NSString , array and Dictionary的更多相关文章
- [Swift通天遁地]五、高级扩展-(6)对基本类型:Int、String、Array、Dictionary、Date的扩展
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- Linq在Array,List,Dictionary中的应用
Linq在Array,List,Dictionary中的应用 今天在实际工作中需要对array,list,dictionary进行排序,试一试linq,发现非常好用,代码如下: using Syste ...
- C# List、Array、Dictionary之间相互转换
Array转换为List List转换为Array Array转Dictionary Dictionary转Array List转Dictionary Dictionary转List IQueryab ...
- Array 、 Dictionary 、 Object 3大数据结构 以及 for ... in for each的研究
Array:存储方式-------索引存储 (要求key是大于等于0的整数) Dictionary.Object:存储方式---------索引存储 区别:可以说它们的 key 都 对应 各自的引用, ...
- asp.net mvc 后台怎么接受前端返回的array list dictionary
参考了别人的文章,我这样尝试去写: 数据源:memberInRoles var memberInRoles= {}; for(var i=0;i<sureOptions.length;i++){ ...
- Swift与Objective-C交互
在同一个工程中是可以同时使用Swift和OC的,但不可以同时出现在同一个文件中. OC调用Swift相关信息的方法 在***.m文件中导入工程名-Swift.h即可. 如工程名为ABC,则在需要使用S ...
- [OC Foundation框架 - 4] NSString的导出
void exportString() { NSString *str = @"Hello, 坑爹"; NSString *path = @"/Users/hello ...
- [OC Foundation框架 - 2] NSString 的创建
A. 不可变字符串 void stringCreate() { //Don't need to release memory by this way NSString *str1 = @"S ...
- AS3.0杂记——Dictionary、Object与Array
来源:http://blog.csdn.net/m_leonwang/article/details/8811829 Object.Array与Dictionary都是关联数组,就是用“键”来索引存储 ...
随机推荐
- 关于Mybatis 的 Mapped Statements collection does not contain value for 异常 解决方案
查看堆栈信息: at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:595) at org.apac ...
- codeforces 251 div2 D. Devu and his Brother 三分
D. Devu and his Brother time limit per test 1 second memory limit per test 256 megabytes input stand ...
- nginx 跨域解决
server { listen 8811 default_server; root /opt/bp; # Make site accessible from http://localhost/ ser ...
- Spring Boot 2.1.1.RELEASE 多数据源配置与使用
有时候,一个系统的功能,需要两个或两个以上的数据库, 在Spring Boot 中要如何配置? How to? #primary primary.spring.datasource.jdbc-url= ...
- MAC OS 英语朗读功能
哈哈哈,太神奇了 在命令行中敲say + word ,系统能够自己讲word读出来. 如果是敲的是 say +中文, 就不知道再读什么啦 哈哈哈哈---- 此外,在对应网站选中内容后还可以右击,用sp ...
- S4 对象系统
上一节中,我们介绍了 S3 系统.与大多数其他编程语言的面向对象系统不同,与那些类被定义为固定结构,且随着程序编译有确定的方法分派的系统相比,S3 系统显得非常不严谨.当我们定义一个 S3 类时,几乎 ...
- ubuntu下xx-net可用IP为0, ping6显示 Network is unreachable
不知和xx-net有没有关系. 全新安装系统 sudo apt-get install miredo 这时, ping6 ipv6.google.com 是能ping通的 按github上依次安装py ...
- WPF几种高级绑定
(1)Binding + RelativeSource + AncestorType 模式 , 根据关联源所指定的类型,可动态绑定指定类型的Path属性(Path可以省略)(PS:动态指父级在运行 ...
- 使用Laravel提交POST请求出现The page has expired due to inactivity错误
任何指向 web 中 POST, PUT 或 DELETE 路由的 HTML 表单请求都应该包含一个 CSRF 令牌(CSRF token),否则,这个请求将会被拒绝.
- h1042 N!大数乘int
计算10000以内某个数的阶乘,即大数乘以int,考虑到一个int存一个数位过于繁琐且浪费空间,采用万进制 一个int存四个位数,但注意除了最高位,其他位不够四位数时要加上前导0凑够四位: 例1234 ...