关于String在OC中的一些操作(长沙戴维营)
//1. 不可变类型(NSNumber, NSString, NSArray, NSDictionary, NSSet)
//2. 不可变类型的引用计数可能是不符合规则
NSString *str1 = @"abc";
NSString *str2 = @"efg";
//字符串连接
NSString *str3 = [[NSString alloc]initWithFormat:@"%@%@",str1,str2];
NSLog(@"%@",str3);
NSString *str4= [str1 stringByAppendingFormat:@"%@",str2];
NSLog(@"%@",str4);
NSString *str5 = [str1 stringByAppendingString:str2];
NSLog(@"%@",str5);
//c字符串和oc之间的转换
char *cstr = "abc";
NSString *str = @(cstr);//语法糖
str = [[NSString alloc] initWithCString:cstr encoding:NSUTF8StringEncoding];//C语言 -> OC
//获取资源文件夹下的文件路径
// NSString *path = [[NSBundle mainBundle] pathForResource:@"File" ofType:@""];
//[[NSBundle mainBundle] resourcePath];
//[[NSBundle mainBundle] bundlePath];
NSString *path = NSHomeDirectory();
path = [NSString stringWithFormat:@"%@/Documents/test.txt", path];
NSLog(@"%@", path);
//保存文件
[path writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
str = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@", str);
//从OC -> C
const char *cstr2 = [str04 cStringUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%s", cstr2);
const char *cstr3 = [str04 UTF8String];
NSLog(@"%s", cstr3);
// 如果有前缀
NSString *str05 = @"http://www.baidu.com";
if ([str05 hasPrefix:@"http://"]) {
NSLog(@"这是http协议");
}
// 如果有后缀
if ([str05 hasSuffix:@".com"]) {
NSLog(@"这是一个.com域名");
}
//获取大写
NSString *str06 = @"Zhang".uppercaseString;
NSLog(@"%@", str06);
//获取小写
NSLog(@"%@", str06.lowercaseString);
// 判断字符串是否相等
if ([str06 isEqualToString:@"ZHANG"]) {
NSLog(@"相等");
}
// 字符串比较strcmp
NSLog(@"%ld", [str06 compare:@"xxx"]);
// 字符串连接
NSString *str07 = [@"http://" stringByAppendingString:@"www.baidu.com"];
NSLog(@"%@", str07);
// 创建字符串
NSString *str08 = @"Zhangsan,Lisi,Wangwu,Lisi";
//分割字符串
NSArray *array = [str08 componentsSeparatedByString:@","];
NSLog(@"%@: %lu", array, array.count);
NSString *str09 = [array componentsJoinedByString:@"-"];
NSLog(@"%@", str09);
//获取子串
//[ )
// 确定范围,并把该范围的字符串打印出来
NSRange range = NSMakeRange(2, 4);
NSString *str10 = [str08 substringWithRange:range];
NSLog(@"%@", str10);
// 查找已有字符串的位置并输出位置
range = [str08 rangeOfString:@"Lisi"];
NSLog(@"(%lu, %lu)", range.location, range.length);// ( )
NSLog(@"%@", NSStringFromRange(range)); //{ }
// 用新子字符串替换字符串中已有的子字符串
NSString *str11 = [str08 stringByReplacingOccurrencesOfString:@"Lisi" withString:@"Zhao"]; //所有相同的都会被替换掉
NSLog(@"%@", str11);
NSString *str13 = [str08 stringByReplacingCharactersInRange:NSMakeRange(9,4) withString:@"momo"]; //把指定范围内的字符替换
NSLog(@"str13=%@",str13);
// 给字符串后面加一个 .txt
NSString *str12 = [str08 stringByAppendingPathExtension:@"txt"];
NSLog(@"%@", str12);
// 给字符串后面加一个 /txt
NSString *str14 = [str08 stringByAppendingPathComponent:@"txt"];
NSLog(@"%@",str14);
}
关于String在OC中的一些操作(长沙戴维营)相关推荐
- OC中给我们提供的一个技术:谓词(NSPredicate).note
OC中给我们提供的一个技术:谓词(NSPredicate) OC中的谓词操作是针对于数组类型的,他就好比数据库中的查询操作,数据源就是数组,这样的好处是我们不需要编写很多代码就可以去操作数组,同时也起 ...
- String 转表情, Swift 与 OC 中调用
1. 在Swift 中创建 NSString 分类,String+Emoji.swift //用 String 加不了 @objc 修饰关键字 @objcMembers 用来修饰整个类 extensi ...
- iOS开发几年了,你清楚OC中的这些东西么!!!?
iOS开发几年了,你清楚OC中的这些东西么!!!? 前言 几年前笔者是使用Objective-C进行iOS开发, 不过在两年前Apple发布swift的时候,就开始了swift的学习, 在swift1 ...
- OC中的NSNumber、NSArray、NSString的常用方法
和C语言不同,在Objective-C语言中,有单独的字符串类NSString.C语言中,string是由 char(ASCLL码)字符组成 OC中,字符串是由unichar(Unicode)字符组成 ...
- OC中的基本容器和基本数据类型
基本数据类型 NSRange 是一个结构体,里面有两个数据成员数据类型都为NSUInteger 就是c语言中的无符号整形,一个是location表示集合的起始地址,另外一个变量是length表示从起始 ...
- OC中的NSArray和NSMutableArray、NSDictionary和NSMutableDictionary用法
一:NSArray 和NSMutableArray 1: NSArray:不可变数组 NSArray是OC中使用的数组,只能用来存放OC对象,不能存放非OC对象如基本数据类型 它使不可变的,一旦初始化 ...
- OC中的归档和反归档
所谓的归档和反归档也就是我们将数据存储到文件中,和从文件中获取数据,和字符串数组不同的是对象的归档是比较复杂的这个地方我们就通过一个例子来演示一下怎样在OC中实现归档和反归档. 首先我们要做的是是创建 ...
- java8 流操作_java8中的流操作
Stream 流是 Java 8 新提供给开发者的一组操作集合的 API,将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选.排序.聚合等.元素流在管道中经过 ...
- android中的数据库操作(SQLite)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
最新文章
- 基于Matlab的BP神经网络在语音特征信号识别中的应用
- springBoot之过滤器和拦截器的使用
- java 实现约瑟夫环
- 中国台湾地区几乎所有院校的硕博论文库(部分可下全文)分享该日志 举报...
- 使用高性能Pipelines构建.NET通讯程序
- 怎么自定义字体_自定义字体@fontface的常见应用
- JVM源码分析--ClassLoader类加载器
- Sharepoint 弹出消息提示框
- 深入 AI 之前,你需要学习的服务与框架
- Atitit rss没落以及替代品在线阅读器
- 32位汇编语言helloworld_编程语言发展70年,50种不同语言输出Hello World,你知多少?...
- 什么是单页应用SPA
- Android 动画之 View动画 和 帧动画
- 每日一練06:javascript原生拖拽写的日食
- 计算机大一新生的体验
- bps是什么单位?是什么意思
- sendcloud php 群发,laravel5.5 使用sendcloud发送邮件
- Java 实现双向链表
- 前端导出表格,万级数据,带样式(留自用)
- 计算机网络---应用层