黑马程序员-OC-Foundation-NSString
来源:互联网 发布:lol域名 编辑:程序博客网 时间:2024/05/22 06:19
——- ios培训、ios培训、期待与您交流! ———-
NSString是什么
NSString是Foundation框架里面的NSObject的一个子类.
这里学习的主要是Foundation中的一些函数和这个类中已经封装好的一些方法,重点罗列了几个比较常用的方法和函数.
NSString用法
1.直接创建方式:
NSString *str = @"abc";
- 格式化创建:
NSString *st2 = [NSString stringWithFormat:@"%@", @"jack"];//这种方式创建的字符串存储在堆区NSString *str = [[NSString alloc] initWithFormat:@"My age is %d", 10];//这种方式创建的字符串存储在常量区
3.文本编码:
中文 :GBK(3个字节) GB2312(3个字节)
UTF - 8:国际通用编码(2个字节)
- 字符串写入文件:
//这里使用的就是UTF-8文本编码[str writeToFile:@"/Users/zhaoxiaohu/Desktop/" atomically:YES encoding:NSUTF8StringEncoding error:&err];
5.字符串从文件读取:
NSString *str = [NSString stringWithContentsOfFile:@"/Users/mac/Desktop/str.txt" encoding:NSUTF8StringEncoding error:&err];
6.字符串比较函数:
NSComparisonResult result = [str1 compare:str2 options:NSCaseInsensitiveSearch|NSNumericSearch];返回值:NSOrderedAscending(str1<str2)NSOrderedDescending(str1>str2)NSOrderedSame(str1 = str2)
- 判读字符串是否相等:
[str1 isEqualToString:str3]//只比较内容是否一样
- 检测字符串前后缀:
NSURL *url=[NSURL URLWithString:@"http://www.itcase.com"];[url hasPrefix:@"http://"]; 字符串是否以http://开头[imgName hasSuffix:@"com"]; 检测字符串是否以.com结尾
9.从一个字符串中找到另一个字符串的位置:
NSRange range = [str1 rangeofString:str2]; //str1 中找str2
range是一个结构体,上面方法返回的是str1在str2中的位置和所占长度.
10.字符串的截取
NSString *str = @"http://www.baidu.com"; //1) 从xx位置开始,到最后结束(包含xx这个位置的字符) NSString *str1 = [str substringFromIndex:5]; NSLog(@"str1 = %@",str1); //2) 从开始位置,到xx位置结束(不包含xx这个位置) NSString *str2 = [str substringToIndex:5]; NSLog(@"str2 = %@",str2); //3) 截取一个范围 range NSRange r1 = {3,4}; NSString *str3 = [str substringWithRange:r1]; NSLog(@"str3 = %@",str3);
11.字符串的替换
NSString *str =@"asdfsdafasdfdasdfsa";NSString *newStr = [str stringByReplacingOccurrencesOfString:@"a" withString:@"*"];
以上是把str字符串中”a”换成”*”
12.OC的字符串和 C的字符串互相转换问题
1) C---->OC对象 char *s = "zhangsanfeng"; printf("%s\n",s); //思路:创建一个OC的字符串对象,用C语言的字符串创建 NSString *str = [NSString stringWithUTF8String:s]; NSLog(@"str = %@",str); //2) OC对象 --> C的字符串 NSString *str2 = @"zbz"; // 把str2 转 C的字符串 const char *s1 = [str2 UTF8String];
关于NSString的一些思考
1.NSString直接创建的字符串都是不可变的,上面方法中有替换方法,本质上是在常量去重新创建一个新的字符串,然后把新的字符串的地址重新赋给原来字符串的指针.
2.NSString类中包含很多方法,有的是类方法,有的是对象方法,当方法,类方法由类调用,对象方法由对象调用.
3.NSString创建的字符串是一个对象,是char* 类型.
NSMutableString
NSMutableString是NSString的一个子类,可以创建可变的字符串.
它可以使用NSString中所有的方法.
可变的字符串的意思就是:这个字符串所在的空间可以不固定,可以往这块空间里面增加或者减少元素.
NSMutableString几个特有的方法
1.创建一个可变的空字符
NSMutableString *str3 = [NSMutableString string];
- appendFormat 格式化的添加字符串
[str appendFormat:@"http://www.baidu.com/%d",100];
- 删除字符串一部分内容
[str deleteCharactersInRange:NSMakeRange(3, 4)];
4.插入一个字符串
[str insertString:@"p://" atIndex:3];
5.替换字符串的一部分内容
[str replaceCharactersInRange:NSMakeRange(11, 5) withString:@"itcast"];
关于NSMutableString的几点思考
1.NSMutableString创建的是可变的字符串,这个字符串的空间可变
2.NSMutableString str=@”abc”;这种创建方式是错误的,这种创建方式默认的是创建了一个不可变的字符串,显然不符合逻辑.
3.NSMutableString对字符串操作时空间大小可以改变,而空间的位置没有变,NSString在对字符串操作的时候,本质上是一个不断创建新字符串的过程,只不过是用指针不断指向不同的空间而已.
- 黑马程序员-OC-Foundation-NSString
- 黑马程序员----oc加强笔记----Foundation\NSString
- 黑马程序员-OC笔记(八) Foundation 结构体 NSString
- 黑马程序员----OC Foundation框架--结构体、NSString
- 黑马程序员-----oc语言学习笔记之foundation框架-NSString
- 黑马程序员--OC的Foundation框架之NSString
- 黑马程序员——OC基础---Foundation之NSString
- 【黑马程序员】OC-Foundation框架—NSString和NSRange
- 黑马程序员——OC基础---Foundation<NSString,NSArray,NSMultableString>
- 黑马程序员---oc Foundation
- 【黑马程序员】Foundation框架NSString
- 黑马-OC-Foundation-NSString常用对象类
- 黑马程序员 OC框架: Foundation
- 黑马程序员 -- OC语言 Foundation
- 黑马程序员------OC Foundation框架
- 黑马程序员-OC-Foundation-NSArray
- 黑马程序员-OC-Foundation-NSDictionary
- 黑马程序员-OC学习笔记-----Foundation框架(常用结构体和NSString)
- java的序列化和反序列化
- ❀自我唠嗑OC-字符串
- Idea15 常用设置(一):JDK、SVN
- mk文件释义
- CodeForce--606A. Magic Spheres解题报告
- 黑马程序员-OC-Foundation-NSString
- MBR
- 日志采集——rsyslog
- iOS中的用户交互userInteractionEnabled
- 保存textarea输入的空格和换行格式
- Caused by: java.lang.ClassNotFoundException: org.springframework.expression.PropertyAccessor
- iOS 中 当程序进入后台 但是程序员希望在程序进入后台的时候还可以运行一段代码时候可以做以下的操作
- Change auto-renaming in guake!!!!!!!!!!!!!!!!!!!!
- switf-基础03-类型安全与类型引用