//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中的一些操作(长沙戴维营)相关推荐

  1. OC中给我们提供的一个技术:谓词(NSPredicate).note

    OC中给我们提供的一个技术:谓词(NSPredicate) OC中的谓词操作是针对于数组类型的,他就好比数据库中的查询操作,数据源就是数组,这样的好处是我们不需要编写很多代码就可以去操作数组,同时也起 ...

  2. String 转表情, Swift 与 OC 中调用

    1. 在Swift 中创建 NSString 分类,String+Emoji.swift //用 String 加不了 @objc 修饰关键字 @objcMembers 用来修饰整个类 extensi ...

  3. iOS开发几年了,你清楚OC中的这些东西么!!!?

    iOS开发几年了,你清楚OC中的这些东西么!!!? 前言 几年前笔者是使用Objective-C进行iOS开发, 不过在两年前Apple发布swift的时候,就开始了swift的学习, 在swift1 ...

  4. OC中的NSNumber、NSArray、NSString的常用方法

    和C语言不同,在Objective-C语言中,有单独的字符串类NSString.C语言中,string是由 char(ASCLL码)字符组成 OC中,字符串是由unichar(Unicode)字符组成 ...

  5. OC中的基本容器和基本数据类型

    基本数据类型 NSRange 是一个结构体,里面有两个数据成员数据类型都为NSUInteger 就是c语言中的无符号整形,一个是location表示集合的起始地址,另外一个变量是length表示从起始 ...

  6. OC中的NSArray和NSMutableArray、NSDictionary和NSMutableDictionary用法

    一:NSArray 和NSMutableArray 1: NSArray:不可变数组 NSArray是OC中使用的数组,只能用来存放OC对象,不能存放非OC对象如基本数据类型 它使不可变的,一旦初始化 ...

  7. OC中的归档和反归档

    所谓的归档和反归档也就是我们将数据存储到文件中,和从文件中获取数据,和字符串数组不同的是对象的归档是比较复杂的这个地方我们就通过一个例子来演示一下怎样在OC中实现归档和反归档. 首先我们要做的是是创建 ...

  8. java8 流操作_java8中的流操作

    Stream 流是 Java 8 新提供给开发者的一组操作集合的 API,将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选.排序.聚合等.元素流在管道中经过 ...

  9. android中的数据库操作(SQLite)

    android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   an ...

最新文章

  1. 基于Matlab的BP神经网络在语音特征信号识别中的应用
  2. springBoot之过滤器和拦截器的使用
  3. java 实现约瑟夫环
  4. 中国台湾地区几乎所有院校的硕博论文库(部分可下全文)分享该日志 举报...
  5. 使用高性能Pipelines构建.NET通讯程序
  6. 怎么自定义字体_自定义字体@fontface的常见应用
  7. JVM源码分析--ClassLoader类加载器
  8. Sharepoint 弹出消息提示框
  9. 深入 AI 之前,你需要学习的服务与框架
  10. Atitit rss没落以及替代品在线阅读器
  11. 32位汇编语言helloworld_编程语言发展70年,50种不同语言输出Hello World,你知多少?...
  12. 什么是单页应用SPA
  13. Android 动画之 View动画 和 帧动画
  14. 每日一練06:javascript原生拖拽写的日食
  15. 计算机大一新生的体验
  16. bps是什么单位?是什么意思
  17. sendcloud php 群发,laravel5.5 使用sendcloud发送邮件
  18. Java 实现双向链表
  19. 前端导出表格,万级数据,带样式(留自用)
  20. 计算机网络---应用层

热门文章

  1. 思科计算机网络设计局域网,CISCO局域网设计(毕业设计)_图文.doc
  2. 客户端和服务端的关系
  3. 2022-2028年中国成人用品行业市场深度分析及投资前景预测报告
  4. vis.js的研究之路
  5. 看房没戴头盔,损失二十万 。。。
  6. 达芬奇密码 第六十一章
  7. uni-app 开发APP 自定义轮播图 swiper 指示点位置和样式
  8. 图解 CMMI 2.0之(七)能力域
  9. 全国教育专业学位研究生教指委函件
  10. Skywalking 性能监控安装及使用