oc基础 不可变字符串的创建和使用
oc基础 不可变字符串的创建和使用
简介:下面都是字符串基本用法。
1.字符串的创建
//创建oc常量字符串NSString *str=@"hello world!";NSLog(@"%@",str);//用c语言的字符串来创建oc的字符串char *ch="hello world C";NSString *str2=[[NSString alloc] initWithUTF8String:ch];NSLog(@"%@",str2);//用格式化来创建字符串int a=10;NSString *str3=[[NSString alloc] initWithFormat:@"%@ %d",str2,a];NSLog(@"%@",str3);//用类方法来创建字符串NSString *str4=[NSString stringWithFormat:@"%@%@",str2,str];NSString *str5=[NSString stringWithUTF8String:ch];NSLog(@"%@ , %@",str4,str5);//读取文件来创建字符串NSString *path=@"/Users/qf/Desktop/my2/Car.h";NSError *error;NSString *str6=[[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];NSLog(@"%@",str6);
2.字符串的使用
(1)判断两个字符串是否相等和比较大小(区分大小写)
NSString *str1=@"hello world";NSString *str2=@"Hello world";if([str1 isEqualToString:str2]){NSLog(@"yes");}else{NSLog(@"no");}if ([str1 compare:str2]==-1) {NSLog(@"str1<str2");}else if ([str1 compare:str2]==0){NSLog(@"str1==str2");}else{NSLog(@"str1>str2");}
(2)判断比较大小(不区分大小写)
//不区分大小写if ([str1 caseInsensitiveCompare:str2]==-1) {NSLog(@"str1<str2");}else if ([str1 caseInsensitiveCompare:str2]==0){NSLog(@"str1==str2");}else{NSLog(@"str1>str2");}
(3)大小写转换
//转大写NSString *str3=[str1 uppercaseString];NSLog(@"%@",str3);//转小写NSString *str4=[str2 lowercaseString];NSLog(@"%@",str4);//首字母大写,其他变小写NSString *str5=[str2 capitalizedString];NSLog(@"%@",str5);
(4)搜索字符
//查找是否包含NSString *str6=@"I love huang xiao dan.";NSString *str7=@"love";NSRange range=[str6 rangeOfString:str7];NSLog(@"%d,%d",range.location,range.length);if (range.location==NSNotFound) {NSLog(@"没找到");}else{NSLog(@"找到了");}//查找某个位置的字符char c=[str6 characterAtIndex:7];NSLog(@"%c",c);
(5)字符截取
//从位置0开始,截取到指定的位置,开区间NSString *str8=[ str6 substringToIndex:6];NSLog(@"%@",str8);//从指定的位置开始,一直截取到字符串的末尾,闭区间NSString *str9=[str6 substringFromIndex:6];NSLog(@"%@",str9);//截取指定范围的字符串NSRange range1=NSMakeRange(3, 5);NSString *str10=[str6 substringWithRange:range1];NSLog(@"%@",str10);
(6)判断以字符串开头或结尾
//判断字符串是否以“I”开头if([str6 hasPrefix:@"I"]){NSLog(@"yes");}else{NSLog(@"no");}//判断字符串是否以“dan”结尾if([str6 hasSuffix:@"dan"]){NSLog(@"yes");}else{NSLog(@"no");}
(7)字符串转数字类型
NSString *str11=@"10";NSLog(@"%d",[str11 intValue]); //转其他数字类型类似
(8)字符串替换
NSString *str12=@"I am a good student.";NSString *str13=[str12 stringByReplacingCharactersInRange:NSMakeRange(2, 3) withString:@"asjhja"];NSLog(@"%@",str13);
(9)字符串的分割和组合
//单个字符分割NSArray *array=[str12 componentsSeparatedByString:@" "];NSLog(@"%@",array);//字符集进行分割NSString *str14=@"I like a cat,and!dn sa!";NSCharacterSet *set=[NSCharacterSet characterSetWithCharactersInString:@" , !"];NSArray *array2=[str14 componentsSeparatedByCharactersInSet:set];NSLog(@"%@",array2);//字符组合NSString *str15=[array2 componentsJoinedByString:@"!"];NSLog(@"%@",str15);
转载于:https://www.cnblogs.com/DWdan/p/4395616.html
oc基础 不可变字符串的创建和使用相关推荐
- OC基础第四讲--字符串、数组、字典、集合的常用方法
OC基础第四讲--字符串.数组.字典.集合的常用方法 字符串.数组.字典.集合有可变和不可变之分.以字符串为例,不可变字符串本身值不能改变,必须要用相应类型来接收返回值:而可变字符串调用相应地方法后, ...
- OC不可变字符串和可变字符串(1)
在OC中,字符串有:不可变字符串(NSString).可变字符串(NSMutableString). 可变字符串的方法继承于不可变字符串. 可变字符串 1.初始化一个字符串对象(除以下方法外,还可以使 ...
- oc总结 --oc基础语法相关知识
m是OC源文件扩展名,入口点也是main函数,第一个OC程序: #import <Foundation/Foundation.h> int main(int argc, const cha ...
- Objective-C学习笔记2013[NSString]字符串[可变字符串中,加用app减用delete]
Objective-C学习笔记 小常识: NS是Cocoa类对象类型的前缀,来源于史蒂夫-乔布斯被苹果开除那段时间建立的公司NeXT. @是Cocoa元素的前缀,很多地方我们会看到,比如接下来... ...
- OC基础15:内存管理和自动引用计数
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.什么是ARC? (1).ARC全名为A ...
- Java基础知识(五) 字符串与数组
Java基础知识 字符串与数组 1. 字符串的创建与存储的机制是什么 2. "==".equals和hashCode有什么区别 3. String.StringBuffer.Str ...
- IOS学习---OC基础学习(Foundation)
Foundation框架: 包含许多常见的数据类型 是其他所有Ios框架的基础结构体: NSRange: 范围:成员变量有location(位置).length(长度) @"i love o ...
- Python_基础语法_字符串基本操作__声明方式_占位符_切片_转义字符_加密解密(6)
目录: 一.字符串介绍 1.字符的渲染 2.字符的编码 3.不可变类型 二.字符串的基本操作 1.字符串声明 2.字符串占位符号 3.字符串索引切片(包含练习) 4.字符串转义 三.字符串的高级操作 ...
- iOS开发面试知识整理 – OC基础 (二)
iOS | 面试知识整理 – OC基础 (二) 1.C和 OC 如何混编 xcode可以识别一下几种扩展名文件: .m文件,可以编写 OC语言 和 C 语言代码 .cpp: 只能识别C++ 或者C语言 ...
最新文章
- 如何用纯 CSS 创作一个摇摇晃晃的 loader
- 深度学习核心技术精讲100篇(五十五)- 基于OpenCV实现棋盘图像识别
- 在asp中怎么调用带输出参数的存储过程
- salt stack 工具之一——远程命令
- GridView列值绑定
- arc.archives.class.php关于分页错位怎么修改,解决织梦分页错位的办法
- Net4.0的网站在IE10、IE11出现“__doPostBack未定义”的解决办法。
- 【转】WPF从我炫系列3---内容控件的用法
- QT学习笔记(十四):QLayout的属性介绍
- python两个中文队列比较_具有两个优先级的优先级队列Python
- MySQL数据库(九) 一一 处理重复和SQL注入
- CSS中背景图片的坐标之使用说明及css中把所有背景图都放在一张图片上减少图片服务器的请求次数问题(转)...
- lnmp升级PHP环境
- 直流电机正反转驱动电路
- P2184 贪婪大陆(线段树)
- ForeSpider数据采集软件之链接抽取
- 关于TensorFlow使用GPU加速
- LeetCode - Pascal's Trangle
- 数值卡,让数据可视化玩出新花样丨三叠云
- CorelDRAW X7导出pdf发现部分有白边如何处理