nsstring stringwithformat,nsstring和string区别
在Objective-C中,处理字符串的核心类是NSString和NSMutableString。这两个类最大的区别是,在NSString赋值后,字符串的内容和长度不能动态改变,除非字符串被重新赋值。并且NSMutableString可以在创建赋值后动态改变字符串的内容和长度。
NSString常用方法总结
-(void)replaceCharatersInRange;带字符串的范围:nsstring
使用nsstring替换由range指定的字符。
-(void)replacecocrencesofstring:ns string with string:ns string 2选项:opts范围:范围
根据option opts,用指定范围内的nsstring2替换所有nsstring。
来源:
http://blog.csdn.net/xys289187120/article/details/6777283
http://www.cocoachina.com/iphonedev/sdk/2010/0607/1634.html
1.创建NSString字符串。
NSString和char*最大的区别是NSString是一个客观对象,而char*是一个字节数组。@ string 是objective-c NSString常量的标准用法,创建char*时不需要添加@。
//经典字符串赋值
ns string * str 0=@ my name is just coding!;
//字符串格式化和合并分别包括
//ns string * type int type char * type
ns string * str 1=[nsstringstringwithformat:@ 我的名字:% @我的年龄:%d我的邮箱:% s ,@ justcoding ,25, just coding @ Gmail . com ];
//在字符串赋值参数中只能写入一个字符串,这与第一个非常相似
ns string * str 2=[nsstringstringwithstring:@ 我是字符串];
//字符串转换为utf-8格式,参数为char*
ns string * str 3=[nsstringstringwithhutf 8 string:字符串转换utf-8格式];
//字符串合并
inti=100
char*c=宣玉松;
NSString*temp=@ 我是临时字符串;
//在字符串temp的基础上继续添加inti和char*c,形成新的字符串。
NS String * str 4=[TempstringbyAppendingFormat:@ 整数:%d字符:%s ,I,c];
//在字符串temp的基础上继续添加temp,形成新的字符串
ns string * str 5=[tempstringByAppendingString:temp];
//字符串输出
NSLog(@str0=%@ ,str 0);
NSLog(@str1=%@ ,str 1);
NSLog(@str2=%@ ,str 2);
NSLog(@str3=%@ ,str 3);
NSLog(@str4=%@ ,str 4);
NSLog(@str5=%@ ,str 5);
}
每个字符串实际上是由几个char字符组成的,字符串的遍历实际上是提取字符串中的每个字符。
//经典字符串赋值
NSString * str=@ YUSONGMOMO
//字符串的长度
int count=[strlength];
ns(@ 字符串的长度为%d ,count);
//遍历字符串中的每个字符
for(inti=0;我数;我)
{
charc=[strcharacteriateindex:I];
Ns日志(@ 字符串的位%d是%c ,I,c);
}
}
IsEqualToString比较字符串是否完全相等,大小写不同不能完全匹配。
HasPrefixe匹配字符串头。
HaSuffix匹配字符串的尾部。
NSString * str0=@ justcoding
NSString * str1=@ justcoding
//字符串完全相等比较
if([str0isEqualToString:str1])
{
NSLog(@ 字符串完全相等);
}
//字符串在开始时进行比较
if([str0hasPrefix:@just])
{
NSLog(@ string str0以just )开头;
}
//字符串在最后进行比较
if([str1hasSuffix:@coding])
{
NSLog(@str1字符串以coding结尾);
}
}
//isEqualToString方法
ns string * string 01=@ this is string!;
ns string * string 02=@ this is string!;
bool result=[string 01 isequaltstring:string 02];
NSLog(@ 结果:%d ,结果);
//比较方法(比较器返回的三个值)
ns string * string 01=@ this is string!;
ns string * string 02=@ this is string!;
bool result=[string 01 compare:string 02]==NSOrderedSame;
NSLog(@ 结果:%d ,结果);
///NSOrderedSame确定两个内容是否相同。
ns string * string 01=@ this is string!;
ns string * string 02=@ this is string!;
bool result=[string 01 compare:string 02]==NSOrderedAscending;
NSLog(@ 结果:%d ,结果);
///NSOrderedAscending判断两个对象的值(按字母顺序比较,确实是string02大于string01)
ns string * string 01=@ this is string!;
ns string * string 02=@ this is string!;
bool result=[string 01 compare:string 02]==nsoredereddescending;
nslog(@ result:% d,result);
//defender ddescendant判断两对象值的大小(按字母顺序进行比较,收敛剂02小于收敛性01号为真)
//不考虑大小写比较字符串一
ns string * string 01=@ this is string!";
ns string * astring 02=@ this is string!";
boolrsult=[astring 01不区分大小写compare:a string 02]==defender rights name;
nslog(@ result:% d,result);
//defender ddescendant判断两对象值的大小(按字母顺序进行比较,收敛剂02小于收敛性01号为真)
//不考虑大小写比较字符串2
ns string * string 01=@ this is string!";
ns string * astring 02=@ this is string!";
bool result=[string 01比较:string 02选项:ns不区分大小写搜索 nsnumeric搜索]==sensored DSA name;
nslog(@ result:% d,result);
//NSCaseInsensitiveSearch:无讯息搜寻:不区分大小写比较ns字面搜索(ns字面搜索):进行完全比较,区分大小写数字搜索数值搜寻:比较字符串的字符个数,而不是字符值。
//从文件读取字符串:initwithcontentsoffile方法
nsstring * path=@ astring。文本”;
ns string * astring=[[nstringallo]initwithcontentsoffile:path];
nslog(@收敛剂):% @,收敛剂;
[astrinrelese]://astrin=nil;
//写字符串到文件:writeToFile方法
ns string * astring=[[nstringaloc]init withstring:@ 这是一个字符串!];
nslog(@收敛剂):% @,收敛剂;
nsstring * path=@ astring。文本”;
[string write to file:path atomic:yes]:
[astrinrelese]://astrin=nil;
nsstring * path=@ ~/nsdata。txt ;
ns string * absolute epath=[pathstringbyexpandinginpath];
nslog(@绝对路径):% @,绝对路径。
nslog(@ path):% @,[absolute thstringbyabbrevitinwithtilinpath]:
nsstring * path=@ ~/nsdata。txt ;
nslog(@扩展名):% @,[路径扩展名]);
nsstring * string 1=@ astring
nsstring * string 2=@ string
nslog(@ string 1:% @,[string 1 upper as estring]);//大写
nslog(@ string 2):% @,[string 2 lowercasestring]);//小写
nslog(@ string 2:% @,[string 2大写的dstring]);//首字母大小
NSString*str0=@ "中文我的名字是宣yuong ;
//截取字符串起始点到索引(索引)为四之间的内容
ns string * to=[str 0 subsingindex:4];
nslog(@ to=% @ to);
//截取字符索引(索引)为2到结尾之间的内容
ns string * from=[str 0 subsingromindex:2];
nslog(@ from=% @ from):
//设置截取字符串的范围
//从第二位开始,长度为十
ns ranger=ns makengland(2,10);
ns string * str rang=[str 0 substr with range:rang];
nslog(@ rang=% @,str rang);
//设置字符串首字母大写
nslog(@ str 0)首字母大写:%@,[str 0大写的环]:
//设置字符串全部内容为大写
nslog(@ str 0)大写:%@,[str 0 upper asestring]:
//设置字符全部内容为小写
nslog(@ str 0)小写:%@,[str0lowercaseString]:
}
NSString*str0=@ "中文我的名字是宣yuong ;
ns string * temp=@ is ;
nsrangeng=[str 0 rangeofstring:temp];
NSLog(@日志)搜索的字符串在str0中起始点的索引(索引)为%d,级别,位置:
NSLog(@日志)搜索的字符串在str0中结束点的索引(索引)为%d,响了。位置响了。长度
//将搜索中的字符串替换成为一个新的字符串
ns string * str=[str 0 string byeplicangcharacters range:ranwithstring:@ 哇咔咔卡卡咔];
NSLog(@日志)替换后字符串为% @ str
//将字符串中全部替换成*
str=[str 0 string byeplicangocurrencofsstring:@ with string:@ @ @ ];
NSLog(@日志)替换后字符串为% @ str
}
拓展:使用下面这个方法整体替换字符串还可以设置替换的区域。
stringbyeplicangoccurrencesofsstring:(ns string *)with string:(n string *)选项:(nsstringcompareoptions)范围:(NSRange)
7.字符串尾部添加
使用你好吗在内存中创建字符串对象后边可以动态的操作这个字符串,修改与添加等。
appendstring(附录字符串)方法:向字符串尾部添加一个字符串。
附录格式方法:向字符串尾部添加多个类型的字符串,可以添加任意数量与类型的字符串。
nsmutualstring * str=[[nsmutualtringalloc]init];
//添加普通的字符串
[撕裂环:@ AAA ];
//添加字符串整型字符型
[strappendFormat:@ 我的名字:% @我的年龄:%d我的邮箱:% s ,@ justcoding ,25, just coding @ Gmail . com ];
NSLog(@str=%@ ,str);
}
StringWithString方法:用于创建字符串初始化赋值。
RangeOfString方法:传入的字符串返回字符串中的一个范围。您也可以编写NSMakeRange(0,3),这意味着范围是从字符串中的第0位到第3位。
DeleteCharactersInRange:删除字符串参数是Range,即删除范围。
//创建一个字符串
NSMutableString * str=[NSMutableString string withstring:@ justcodingsbest!];
//删除字符串中带有“justcoding”的字符
[strdeleteCharactersInRange:[strrangeOfString:@ just coding ]];
NSLog(@str=%@ ,str);
}
StringWithString方法:用于创建字符串初始化赋值。
InsertString方法:插入第一个参数的String对象,以及插入第二个参数的位置。
//创建一个字符串
NSMutableString * str=[NSMutableString string withstring:@ just codingis ];
//在str的第10位插入一个字符串
[strinsertString:@ best man at index:10];
NSLog(@str=%@ ,str);
}
//创建一个字符串
nmu table String * str 1=[nmu table String String:@ String 1 ];
NSMutableString * str2
//字符串赋值
str2=str1
[str2appendString:@ 和string 2 ];
NSLog(@str1=%@ ,str 1);
NSLog(@str2=%@ ,str 2);
}
为什么str1的数据在向str2添加数据后会发生变化?这就是指针的魅力,因为我们操作的是指针。str2=str1是指两个指针同时指向一块内存,那么str2指向的内存内容改变后str1当然也会改变。
11.字符串转换为指定类型
如果转换后的非法参数不抛出异常,就像用中文转换整数一样。不会报告任何错误,但转换结果为默认值0。
NSString * str0=@ 1121
//NSString*str0=@ 中国;
//将字符串转换为整数。
inti=[str 0 int value];
NSLog(@ 转换后:%i ,I);
//字符串到整数
NSString * str1=@ 1985
//ns string * str 1=@ China ;
//将字符串转换为整数
NSIntegerii=[str 1 integer value];
NSLog(@ 转换后:%i ,ii);
//双精度字符串
NSString * str2=@ 3.145926
//NSString*str2=@ 中国;
//strong制字符串为双精度
doubled=[str 2 double value];
NSLog(@ 转换后:%f ,d);
//要浮动的字符串
NSString * str3=@ 3.145926
//NSString*str3=@ 中国;
//strong制字符串浮动
doublef=[str 3 float value];
NSLog(@ 转换后:%f ,f);
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。