IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> OC-NSString -> 正文阅读

[移动开发]OC-NSString

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
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:55:38  更:2022-08-06 10:58:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 4:53:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码