NSString创建字符串

NSString 的string WithFormat:方法 是通过格式字符串和参数来创建的。 原形    +(id)string WithFormat:(NSString*)format;

创建字符串的三种方式:

是类方法用类名去调用的。

+(id)stringWithFormat:(NSString *)format,……;  单词format :格子字符

NSString *str=@"中国人,my";//现在常用的方法

NSLog(@"%@",str);

NSString *string1=[NSString stringWithFormat:@"Your height is %ifeet,%i inches",5,11];//这个方法可以加格式控制符之类的。如%i ,很重要的。

NSLog(@"%@",string1);

NSString *str2=[NSString stringWithString:@"Your height is 5 feet,11 inches"];//这是要淘汰的方法。等效于第1种方法。

NSLog(@"%@",str2);

//初始化的方法。

char name[20];

scanf("%s",name);

NSString *str2=[[NSStringalloc]initWithString:@"你好"];//淘汰的方法

NSString *str3=[[NSStringalloc]initWithFormat:@"你好%s",name];

NSLog(@"%@",str3);

字符串长度 length

它返回字符串的字符个数。

NSLog(@"%lu",[str length]);

NSLog(@"%lu",[string1 length]);

NSLog(@"%lu",[str2 length]);

//也可以在表达式中使用它。

if ([str length]>35)

{

NSLog(@"hehe");

}

=======================================================================================================

字符串比较

isEqualToString:表示两个字符串的内容是否相同。可以用来比较接收方(接收消息的对象)和当作参数传递来的字符串。isEqualToSting:返回一个BOOL(YES或NO),型数据来表示两个字符串的内容是否相同。

原形:  -(BOOL) isEqualToString:(NSString*)astring;

ISEqualTOstring判断两个字符串是否相等,返回BOOL类型。

NSString *str3=@"hello 5";

NSString *str4=[NSString stringWithFormat:@"hello %i",5];

if ([str3 isEqualToString:str4])//判断两个字符串是否相等。

{

NSLog(@"They are the same!");

}

--------------------------------------------------------------------------------------------

要比较两个字符串,可以使用compare:方法:

-(NSComparisonResult) compare:(NSString*)string;

compare是逐个进行字符比较,是按ASCII码的方法去比较。

compare等效于c的strcmp字符串比较大小。返回的NSComparisonResult型数据

NSOrderedAscending :左侧字符串小于右侧字符串

NSOrderedSame  :左侧字符串等于右侧字符串

NSOrderedDescending:左侧字符串大于右侧字符串。

NSString *thing1=@"abc";

NSString *thing2=@"abd";

if ([thing1 compare:thing2]==NSOrderedAscending )//NSOrderedAscending :左侧字符串小于右侧字符串

{

NSLog(@"thing1<thing2");

}

if ([thing1 compare:thing2]==NSOrderedSame)//NSOrderedSame  :左侧字符串等于右侧字符串

{

NSLog(@"thing1=thing2");

}

if ([thing1 compare:thing2]==NSOrderedDescending)//NSOrderedDescending:左侧字符串大于右侧字符串。

{

NSLog(@"thing1>tihing2");

}

compare:options:方法。options是个条件,

-(NSComparisonResult) compare:(NSString*)string  options:(unsigned)mask;

options参数是一个位掩码,可以使用位运算符(|)来添加选项标记。

NSCaseInsensitiveSearch  //不区分大小写

NSLiteralSearch     //区分大小写。

NSNumericSearch  //数值比较。

NSString *th1=@"abc";

NSString *th2=@"abC";

if ([th1compare:th2options:NSCaseInsensitiveSearch|NSNumericSearch]==NSOrderedSame)

{

NSLog(@"They match!");

}

============================================================================================

字符串的查找

prefix:前缀,suffix:后缀。

hasPrefix:检查字符串是否有另一个字符串开头,

hasSuffix:检查字符串是否有另一个字符串结尾。

NSString *filename=@"draft-chapter.mov";//判断前缀是否有 draft头用的很少。

if ([filename hasPrefix:@"draft"])

{

NSLog(@"draft is prefix");

}

if ([filename hasSuffix:@".mov"])//判断后缀是否有.mov 尾经常使用的。

{

NSLog(@".mov is suffix");

}

rangeOfString,判断中间是否有。

-(NSRange)rangeOfString:(NSString*)astring      返回的是结构体变量。

NSString *filename1=@"draft-chapter.pages";

NSRange range5;

range5=[filename1 rangeOfString:@"chapter"];

NSLog(@"%lu ,%lu",range5.location,range5.length);

小写改大写  uppercaseString

NSString *res;

res=[filename uppercaseString];//小写改大写。

NSLog(@"%s",[res UTF8String]);

大写改小写lowercaseString;

NSString *xiaoxie;

xiaoxie=[res lowercaseString];//大写改为小写

NSLog(@"%@",[xiaoxie lowercaseString]);

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
可变字符串

NSString是常量不可改变的。

mutable可变的    capacity容量的。

NSMutableString是nsstring的字类。

NSMutableString是用来创建可变字符串。

+(id)stringWithCapacity:(unsigned) capacity;

这个容量只是给NSMutableString的一个建议,字符串的大小并不仅限于所提供的容量,这个容量仅是个最优值。

附加字符串

appendString:接收参数,然后将其复制到接收对象的末尾。

appendFormat:的工作方式与stringWithFormat:类似,但它将格式化的字符串附加到接收字符串的末尾,而不是创建新字符串对象。

-(void)appendStrin:(NSString*)aStrin;//普通添加。

-(void)appendFormat:(NSString*)aStrin; //带格式控制字符串的方式。

NSMutableString *string2;

string2=[NSMutableString  stringWithCapacity:50];

[string2 appendString:@"Hello there "];//普通附加

NSLog(@"%@",string2);

[string2 appendFormat:@"human %d",39];//用带格式控制字符串的方式。

NSLog(@"%@",string2);

插入字符串

-(void)insertString:(NSString*)aString atIndex:(NSUInteger)loc;

//第一个参数是要插入的字符串,第二个参数是要插入的位置

[string2insertString:@"world "atIndex:6];

NSLog(@"%@",string2);

替换字符串

-(void)replaceCharacterInRange:(NSRange) withString:(NSString*)aString;

NSRange range6=[string2rangeOfString:@"human"];//查找human在字符串中的范围。

[string2 replaceCharactersInRange:range6 withString:@"are"];//替换字符串。

NSLog(@"%@",string2);

删除字符串

NSRange range7=[string2 rangeOfString:@"Hello"];

[string2 deleteCharactersInRange:range7];

NSLog(@"%@",string2);

//删除指定位置。

NSRange range8= NSMakeRange(3,2);

[string2 deleteCharactersInRange:range8];

NSLog(@"%@",string2);

Foundation——字符串相关推荐

  1. Objective-C Foundation——字符串

    NSString创建字符串 NSString 的string WithFormat:方法 是通过格式字符串和参数来创建的. 原形    +(id)string WithFormat:(NSString ...

  2. 研读 项目名-LinkMap-normal-x86_64.txt

    一.生成 Link Map File 在Xcode的配置中 Target -> Build Setting -> Linking 将Write Link Map File设置为YES来生成 ...

  3. iOS调优 | 深入理解Link Map File

    Link Map File初识 我们编写的源码需要经过编译.链接,最终生成一个可执行文件.在编译阶段,每个类会生成对应的.o文件(目标文件).在链接阶段,会把.o文件和动态库链接在一起.Link Ma ...

  4. linkMap深度解析

    # Symbols: # Address Size File Name 这里表明了当前的方法所属的文件和占用内存的大小 # Object files: 这个文件表明了上述file中的序号和对应的文件名 ...

  5. MAC版E信心跳包加密KEY的逆向

    在开始正题前先扯点别的吧,这篇博文本来应该在几个月前我还在校的时候就写的,但由于我当时懒得去写博客,加之在我逆向出MAC版E信心跳包加密KEY之后的下一周SimpleNetkeeper作者就在GitH ...

  6. Mach-O结构分析

    可执行文件 我们运行一个程序(进程)是把一些特殊文件在内存中加载并运行得到的结果.那么这类文件的格式必须是系统内核可以理解的,系统内核才能正确解析.这类文件被称为可执行的文件. 不同操作系统的可执行文 ...

  7. MachO dyld(二)

    目录 Mach 微内核 MachO 文件结构 Header(头部) LoadCommands(加载命令) Mach 微内核 macOS && iOS 进化史 Mac OS Classi ...

  8. 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

    一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...

  9. OpenCASCADE:Foundation Classes之集合、字符串、数量和单位转换

    OpenCASCADE:Foundation Classes之集合.字符串.数量和单位转换 集合 概述 数组和序列 maps 迭代器 分配器 Acceleration结构 标准对象的集合 字符串 数量 ...

最新文章

  1. 开源依旧:再次分享一个进销存系统
  2. Cell | 小基因开启微生物组研究新领域——大规模鉴定微生物基因组编码的小蛋白质...
  3. 计算机丢失wininet,win7系统启动程序提示因为计算机中丢失wininet.dll的解决方法...
  4. 【UOJ#188】Sanrd(min_25筛)
  5. css英文左右对齐,中文英文左右padding一致两端对齐实现_js
  6. ASP.NET使用数据库存储、读取并修改图片
  7. MySQL read-c_技术分享 | MySQL C API 参数 MYSQL_OPT_READ_TIMEOUT 的一些行为分析
  8. HDU6292 赛题分析【水题】
  9. iOS设计模式之代理模式
  10. 学习unity的几个网站
  11. 蒙特卡罗类型概率算法
  12. python爬取酷狗音乐_python使用beautifulsoup4爬取酷狗音乐代码实例
  13. Spring AOP编程官方文档解读之操作Advised对象
  14. SPSS实现系统聚类
  15. 在Hyper-V中手动将.avhd合并到.vhd
  16. 关于洛谷哪些题目(入门)
  17. 洒扫庭除,恭候佳朋 ——知象光电欢迎广大来宾莅临TCT展会知象展位
  18. 小米手机连接无线无服务器,小米手机wifidns怎么设置
  19. 泛微OA V8 SQL注入漏洞和文件上传漏洞
  20. NEWS|药物发现公司正在定制ChatGPT:方法如下

热门文章

  1. Duang Duang Duang,CorelDRAW X7最新活动,这个你必须得加入!
  2. oyente—合约漏洞检测工具安装
  3. 一个超方便使用SQL的Python神器
  4. 实战:利用requests库、lxml库的etree,采用xpath方法抓取boss直聘网岗位信息
  5. 蓝奥声智能灯控解决方案:一种无线单火取电控制技术
  6. 怎样编写一个chatgpt聊天网页
  7. 百度阿拉丁计划 - 看上去很美
  8. java key锁 实现对某个key(字符串)加同步锁 带详细注释
  9. Spring Cloud Alibaba入门教程-05【Alibaba微服务组件Nacos配置中心】
  10. 23 种设计模式详解 代码实现全解析