当前位置:网站首页>OC-NSString
OC-NSString
2022-08-02 06:50:00 【彭同学她同桌】
Foundation/NSString.h
字符串常量从程序的执行开始到终止一直存在调用release方法或垃圾回收都不能释放
NSString代表不可变的字符串对象 不能通过增删改来改变他
字符串内部使用Unicode编码
NSString是以类簇的方式(class cluster)可以看作工厂类
定义方式
NSString *a = @"abc";
编译器会将用空格分割的字符串连接在一起
拼接字符串
stringByAppendingFormat 可以拼接多种字符串
NSString *a = @"abc";
NSString *c = @"zzzz";
NSString *b = [a stringByAppendingFormat:@"第一个参数: %@ 第二个参数%@",@12,c];//abc第一个参数: 12 第二个参数zzzz
-(NSUInteger)length 获取长度
返回字符串中Unicode编码的字符的个数 不能用这个函数的返回值来计算需要的字节数 因为他返回的是字符的个数 但是你并不知道一个字符占用几个字节
componentsJoinedByString 通过指定符号拼接字符串
NSArray* array = @[@"a",@"b",@"c"];
NSString *string = [array componentsJoinedByString:@"-"];
NSLog(@"%@",string);
查找字符串
rangeOfString //从string里面找字符串并返回range形式变量
找到了 就返回{location,length}
没找到 返回{NSNotFound,0}
NSString *string = @"0123456789abc";
NSRange range = [string rangeOfString:@"34"];
NSLog(@"@",NSStringFromRange(range));//{3,2} 第三个位置 两个字符
NSRange range = [string rangeOfString:@"Ab" options:NSCaseInsensitiveSerch];//添加参数 这个是可以区分大小写
分割字符串
componentsSeparatedByString 通过指定符号分割
NSString *string = @"sbcd-efht-defagfds";
NSArray *array = [string componentsSeparatedByString:@"-"];
NSLog(@"array = %@",array);//array = (sbcd,efht,defagfds)
substringWithRange 通过range分割字符串
NSString *string = @"0123456789abc"
NSRange range ={
3,8};
NSString *newString = [string substringWithRange:range];//从第3位开始拿八个 3456789a
删除字符串
stringByTrimmingCharactersInSet: 删除特殊符号 常用来去空格
NSString * string = @" abcd ";
string = [string stringByTrimmingCharactersInSet:NSCharacterSet whitespaceCharacterSet];//abcd whitespaceCharacterSet是空格
替换字符串
stringByReplacingOccurrencesOfString:withString: 将指定字符串a替换成指定字符串b
NSSstring string = @“lixun”;
NSString *newString = [string stringByReplacingOccurrencesOfString:@"li"withString:@“liu”];将li字符串替换成liu
stringByReplacingCharactersInRange:withString:
NSString * string = @“aaaaaaannnnnnn”;
NSRange range = {4,3};
string = [string stringByReplacingCharactersInRange:range withString:@“qqqqqqqq”];//表示在第四个位置将3个字符替换成qqqqqqqqq //aaaqqqqqqqqannnnnnn
字符串比较
NSString *string1 = @“abc”;
NSString *string2 = @"ABC";
NSComparisonResult rs = [string1 compare:string2];
if(rs == NSOrderedAscending){
NSLog(@"string1<string2")};
else if(rs == NSOrderedSame){
NSLog(@"string1 = string2")};
else{
NSLog(@"string1>string2")};
关于UTF-8的解码方式
因为ASCII只是单纯的用一个字节表示一个字符导致很多国家的文字是没办法被表示出来的
所以发明了unicode编码 unicode编码有多种编码方式 UTF-8 UTF-16 UTF-32
UTF-8的最大特点是可变长 用1-4个字节表示
1.当只用单字节表示 第一位设为0 后面7位对应这个字符的Unicode码
2.对于需要使用N个字符的来表示(N>1)第一个字节的前N位都设为1 第N+1位设为0
剩余字节的前两位都设为10
这样如果第一位是0则说明一个字节对应一个字符 如果第一位是1 则看有多少个连续的1则表示一个字符占用了多少个字节
0xxxxxxx
110xxxxx 10xxxxxx
1110xxxx 10xxxxxx 10xxxxxx
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
边栏推荐
- Facebook社媒营销的5大技巧,迅速提高独立站转化率!
- 解决Pytorch模型在Gunicorn部署无法运行或者超时问题
- File upload vulnerability (2)
- 线程的创建方式
- July 18-July 31, 2022 (Ue4 video tutorials and documentation, 20 hours. Total 1412 hours, 8588 hours left)
- 吃透Chisel语言.31.Chisel进阶之通信状态机(三)——Ready-Valid接口:定义、时序和Chisel中的实现
- 解决C#非静态字段、方法或属性“islandnum.Program.getIslandCount(int[][], int, int)”要求对象引用
- 在VMware上安装Metasploitable2
- Connection reset by peer 问题解析
- 2022.07.31(LC_6132_使数组中所有元素都等于零)
猜你喜欢
论文《Deep Multifaceted Transformers for Multi-objective Ranking in Large-Scale E-commerce Recommender》
新产品立大功 伟世通第二季度营收双增
FaceBook社媒营销高效转化技巧分享
速看!PMP新考纲、PMBOK第七版解读
条件构造器~wapper
[21天学习挑战赛——内核笔记](一)——设备树的概述(硬件、目标、效果、文件类型)
(2022牛客多校五)C-Bit Transmission(思维)
雷达人体存在感应器方案,智能物联网感知技术,实时感应人体存在
_2_顺序表
See the picture to understand | How to choose sales indicators to measure the health of business growth
随机推荐
mysql 注入
深度学习网络模型的改进与调整
July 18-July 31, 2022 (Ue4 video tutorials and documentation, 20 hours. Total 1412 hours, 8588 hours left)
【杂】pip换国内源教程及国内源地址
图腾柱和推挽电路介绍
堡垒机、堡垒机的原理
在VMware上安装Metasploitable2
交换--STP协议
数据库概论-MySQL的数据表的基本操作
自然语言处理 文本预处理(上)(分词、词性标注、命名实体识别等)
实例029:反向输出
PMP新考纲考试内容介绍
hdu1752 copy
使用hutool做本地缓存的工具类
PWA 踩坑 - 第一次加载页面后无法获取CacheStorage某些资源
[Dataset][VOC] Eyewear dataset 6000 in VOC format
Specified URL is not reachable,caused by :‘Read timed out
每周推荐短视频:为什么产品开发需要数字化?如何做到数字化?
从云计算到函数计算
【请教】SQL语句按列1去重来计算列2之和