Object-C中的字符串对象1-不可变字符串

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

#import <Foundation/Foundation.h>int main(int argc, const char * argv[])
{@autoreleasepool {NSString *str1=@"this is string A";NSString *str2=@"this is string B";NSString *temp;NSComparisonResult compareResult;//01.计算字符串中字符个数NSLog(@"字符串长度:%@的长度为%lu",str1,[str1 length]);//02.将一个字符串复制到另一字符串temp=[NSString stringWithString:str1];NSLog(@"字符串复制:%@",temp);//03.将一个字符串复制到另一字符串末尾temp=[str1 stringByAppendingString:str2];NSLog(@"字符串拼接:%@",temp);//04.验证两个字符串是否相等if([str1 isEqualToString:str2]){NSLog(@"字符串比较:%@与%@相同",str1,str2);}else{NSLog(@"字符串比较:%@与%@不相同",str1,str2);}//05.验证一个字符串是否小于,等于或大于另一字符串compareResult=[str1 compare:str2];if(compareResult==NSOrderedAscending){NSLog(@"字符串比较:%@<%@",str1,str2);}else if(compareResult==NSOrderedSame){NSLog(@"字符串比较:%@=%@",str1,str2);}else{NSLog(@"字符串比较:%@>%@",str1,str2);}//06.将字符串转为大写temp=[str1 uppercaseString];NSLog(@"字符串大写:%@",temp);//07.将字符串转为小写temp=[str1 lowercaseString];NSLog(@"字符串小写:%@",temp);//08.从字符串中取前3个字符temp=[str1 substringToIndex:3];NSLog(@"字符串截取:%@",temp);//09.从字符串中截取第5个字符以后的字符temp=[str1 substringFromIndex:5];NSLog(@"字符串截取:%@",temp);//10.截取从索引5到索引13的子字符temp=[[str1 substringFromIndex:5]substringToIndex:8];NSLog(@"字符串截取:%@",temp);temp=[str1 substringWithRange:NSMakeRange(5, 8)];NSLog(@"字符串截取:%@",temp);//11.从另一字符串查找一个字符串NSString *subStr=@"string A";NSRange subRange=[str1 rangeOfString:subStr];NSLog(@"字符串查找:%@位于%@第:%lu个字符,长度为:%lu",subStr,str1,subRange. location,subRange .length);subRange=[str2 rangeOfString:subStr];if(subRange.location==NSNotFound){NSLog(@"字符串查找:%@中不存在%@",str2,subStr);}else{NSLog(@"字符串查找:%@中存在%@",str2,subStr);}}return 0;
}

输出结果:

2014-02-12 22:41:43.890 05.字符串[1560:303]字符串长度:this is string A的长度为16

2014-02-12 22:41:43.892 05.字符串[1560:303]字符串复制:this is string A

2014-02-12 22:41:43.892 05.字符串[1560:303]字符串拼接:this is string Athis is string B

2014-02-12 22:41:43.892 05.字符串[1560:303]字符串比较:this is string Athis is string B不相同

2014-02-12 22:41:43.893 05.字符串[1560:303]字符串比较:this is string A<this is string B

2014-02-12 22:41:43.893 05.字符串[1560:303]字符串大写:THIS IS STRING A

2014-02-12 22:41:43.893 05.字符串[1560:303]字符串小写:this is string a

2014-02-12 22:41:43.893 05.字符串[1560:303]字符串截取:thi

2014-02-12 22:41:43.894 05.字符串[1560:303]字符串截取:is string A

2014-02-12 22:41:43.894 05.字符串[1560:303]字符串截取:is strin

2014-02-12 22:41:43.894 05.字符串[1560:303]字符串截取:is strin

2014-02-12 22:41:43.895 05.字符串[1560:303]字符串查找:string A位于this is string A:8个字符,长度为:8

2014-02-12 22:41:43.895 05.字符串[1560:303]字符串查找:this is string B中不存在string A

Program ended with exit code: 0


转载于:https://my.oschina.net/zhangqs008/blog/200226

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux环境下作业调度,Linux集群环境下作业调度算法的研究与实现

摘要&#xff1a;集群计算环境中的作业调度接收用户提交的作业请求,并采用适当的调度策略选择计算节点资源来运行用户作业。作业调度策略决定了整个集群系统的效率,尤其是提交计算量大的作业时,良好的作业调度可以大大加快执行速度,因此,作业调度策略是提高集群系统执行并行作业…

硬盘分区与故障排解速查手册(1)

在所有计算机配件中&#xff0c;硬盘是一个比较特殊的角色&#xff0c;它不仅关系到系统的整体性能&#xff0c;而且用户的所有资料都保存在它的身上。 那么&#xff0c;硬盘该如何初始化呢&#xff1f;遇到硬盘故障该如何解决呢&#xff1f;一、大硬盘分区与格式化 硬盘分区是…

Ant Design Blazor 发布 0.9.0,共100+人贡献!

???? 截至这个版本&#xff0c;本项目一共迎来 101 位贡献者&#xff0c;是他们成就了这个项目&#xff01;在此感谢他们慷慨的贡献&#xff01;变更记录Tabs???? 增加路由服用多标签页组件 ReuseTabs。(demo) #1704 ElderJames???? 增加 OnClose 事件与 TabTempla…

人类究竟有多喜欢看热闹?! | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅&#xff08;图源网络&#xff0c;侵权删&#xff09;

linux2.6添加新硬盘,Linux_TurboLinux11添加新硬盘方法,一.Linux的硬盘识别2.6 kernel - phpStudy...

2.6 kernel以后,linux会将识别到的硬件设备,在/dev/下建立相应的设备文件.如:sda表示第1块SCSI硬盘.hda表示第1块IDE硬盘(即连接在第1个IDE接口的Master口上).scd0表示第1个USB光驱.当添加了新硬盘后,在/dev目录下会有相应的设备文件产生.cciss的硬盘是个例外,它的设备文件在/d…

开始→运行→命令 总结大全

winver-检查Windows版本 wmimgmt.msc打开windows管理体系结构(WMI) wupdmgrwindows更新程序 wscriptwindows脚本宿主设置 write写字板 winmsd-系统信息 wiaacmgr-扫描仪和照相机向导 BR>  winchatXP自带局域网聊天 mem.exe显示内存使用情况 Msconfig.exe-系统配置实用程序…

Windbg在Managed App中设置函数断点的几种方法

本文介绍两种使用Windbg在Managed App中设置断点的方法。一种是在live Debug的时候&#xff0c;attach到了Process之后。另外一种是动态调试的时候&#xff0c;如何给几个模块的特定方法下一个断点。 使用Windbg在Native Code里面下断点是比较方便的&#xff0c;bp加上一个…

Python通过amqp消息队列协议中的Qpid实现数据通信

简介&#xff1a;这两天看了消息队列通信&#xff0c;打算在配置平台上应用起来。以前用过zeromq但是这东西太快了&#xff0c;还有就是rabbitmq有点大&#xff0c;新浪的朋友推荐了qpid&#xff0c;简单轻便。自己总结了下文档&#xff0c;大家可以瞅瞅。AMQP&#xff08;消息…

基于 Blazor 打造一款实时字幕

早先在录制视频的时候一直使用的是 obs-auto-subtitle 作为实时字幕展示功能。不过这个是以 OBS 插件的形式存在&#xff0c;不管是语言和功能上都有一定的限制。故而使用 Blazor server 实现一个。总体思路 实时字幕自然需要语音转文字的功能。考察了一些服务之后&#xff0c;…

一个数学系毕业的物理学家,是怎么拿到诺贝尔化学奖的?

全世界只有3.14 % 的人关注了青少年数学之旅2019年10月9日&#xff0c;这个“特别好”教授&#xff0c;1940年&#xff0c;“特别好”考上了耶鲁&#xff0c;1943年&#xff0c;“特别好”终于拿到数学学士学位。“特别好”特别沮丧&#xff0c;▲ “特别好”在牛津大学&#x…

U盘安装Linux挂载cd,U盘安装Ubuntu Server CD-ROM挂载失败

U盘安装 Ubuntu Server 发生Failed to copy file from CD-ROM问题解决方案使用UltraISO制做Ubuntu Server安装盘&#xff0c;在安装过程当中出现[!!] Load installer components from CD警告&#xff0c;这一步应该是安装文件检查步骤&#xff0c;没有检测到完整镜像文件而提示…

三十五例网络故障排除方法

上网时&#xff0c;我们经常会碰到这样、那样的网络故障&#xff0c;如何应付呢?今天&#xff0c;我们就针对一些常见的故障给大家分析一下! 1.故障现象:网络适配器(网卡)设置与计算机资源有冲突。   分析、排除:通过调整网卡资源中的IRQ和I/O值来避开与计算机其它资源的冲突…

遭遇“烧钱瓶颈” 优酷成本结构堪忧

从奥运结束至今&#xff0c;视频网站的短暂喧嚣终于渐归沉寂。尽管各个视频网站通过拼命烧钱而维系出的“看上去很美”的表象让很多人甚至开始盲目高呼&#xff1a;视频网站的春天已经到来&#xff0c;然而&#xff0c;从之前媒体曝出的“优酷网获千万过桥贷款疑是成本逼迫”到…

XHTML教会我的一些东西-1

第一次写博客&#xff0c;虽然以前写作文是我的强项&#xff0c;我也很能说&#xff0c;但是似乎现在这种能力正在退化。不知为什么&#xff0c;到了大学之后我就变得跟以前不一样&#xff0c;似乎是回到了小学时的我。我在大学开始变得内向、沉默、不去主动和别人交谈。因为这…

杀鸡焉用牛刀!放下Windbg,让dotnet-stack来快速定位死锁原因

我们用来分析CPU过高、死锁问题的常见方案是使用Windbg分析dump文件。但是这种方式存在一些缺点&#xff0c;比如dump文件过大难以下载&#xff0c;windbg使用过于复杂难以掌握等。这里介绍一个小工具dotnet-stack&#xff0c;帮助我们检查托管代码调用堆栈&#xff0c;快速定位…

数学中那些非常奇葩的证明

全世界只有3.14 % 的人关注了青少年数学之旅一、费马大定理证明证&#xff1a;是无理数假设是有理数&#xff0c;p和q是互素正整数那么移项得又由费马大定理可知&#xff1a;与费马大定理(Fermats last therorem)矛盾, Q.E.D. &#xff08;也可易证2的n分之一次方且n属于大于2的…

linux代码段起始地址设置,Arch Linux安装后的一些初始设置简介

配置有线网络。没网络的时候&#xff0c;可以直接设定ip应急&#xff0c;后面 netctl 才是正规设置&#xff1a;复制代码代码如下:# ip addr add 192.168.0.100/24 dev enp0s4# ip link set dev enp0s4 up# ip route add default via 192.168.0.1# echo nameserver 208.67.222.…

安装Linux后的遗留问题

一些Linux用户经常询问这样的问题&#xff1a;Linux能兼容XXX卡么&#xff1f;其实&#xff0c;Linux是一个开放性的系统&#xff0c;只要通过Linux爱好者们的努力&#xff0c;Linux可以兼容任何硬件。 一&#xff0c;声卡 首先要知道声卡的类型&#xff0c;或者是某种声卡兼容…

使用 Minimal API 改造动态文件提供者

使用 Minimal API 改造动态文件提供者Intro之前介绍过一个基于动态文件提供者来实现静态网站的动态更新&#xff0c;可以参考 ASP.NET Core 实现一个简单的静态网站滚动更新&#xff0c;在 Minimal API 出现之后想改造成 Minimal API 的写法&#xff0c;但是由于之前版本的 Min…

[导入]体验Asp.Net Mvc Preview5(3)-探索ModelBinder的工作原理

摘要: 在前面的两篇文章中,我们研究了Asp.Net Mvc Preview5的ViewEingine的改进,从本篇开始,我们开始研究Preview5中的新特性:ModelBinder,首先我们来了解下什么是ModelBinder特性,这有什么用处,在以前的版本中,如果我们要在Action中获取数据,一般有三种方式,一是通过Action的参…