配色: 字号:
Objective-C中使用NSString类操作字符串的方法小结
2016-11-04 | 阅:  转:  |  分享 
  
Objective-C中使用NSString类操作字符串的方法小结



这篇文章主要介绍了Objective-C中使用NSString类操作字符串的方法小结,文中讲到了字符串的分割和拼接等一些常见的用法,需要的朋友可以参考下



一、字符串切割

1、带节点的字符串,如@"

讨厌的节点

"我们只想要中间的中文



处理方法:





复制代码代码如下:





NSStringstring1=@"

讨厌的节点

";



/此处将不想要的字符全部放进characterSet1中,不需另外加逗号或空格之类的,除非字符串中有你想要去除的空格,此处




NSCharacterSetcharacterSet1=[NSCharacterSetcharacterSetWithCharactersInString:@"

"];



//将string1按characterSet1中的元素分割成数组



NSArrayarray1=[string1componentsSeparatedByCharactersInSet:characterSet1];



NSLog(@"array=%@",array1);



for(NSStringstring1inarray1)

{

if([string1length]>0){



//此处string即为中文字符串



NSLog(@"string=%@",string1);

}

}





打印结果:



2016-01-1710:55:34.017string[17634:303]array=("","","","\U8ba8\U538c\U7684\U8282\U70b9","","","","","","","","","")2016-01-1710:55:34.049string[17634:303]string=讨厌的节点



2、带空格的字符串,如



@"helloworld"去掉空格





复制代码代码如下:





NSStringstring2=@"helloworld";



/处理空格/



NSCharacterSetcharacterSet2=[NSCharacterSetwhitespaceCharacterSet];



//将string1按characterSet1中的元素分割成数组

NSArrayarray2=[string2componentsSeparatedwww.hunanwang.netByCharactersInSet:characterSet2];



NSLog(@"\narray=%@",array2);



//用来存放处理后的字符串

NSMutableStringnewString1=[NSMutableStringstring];



for(NSStringstringinarray1)

{

[newString1appendString:string];

}

NSLog(@"newString=%@",newString1);





打印结果:



2016-01-1711:02:49.656string[17889:303]array=(hello,world)2016-01-1711:02:49.657string[17889:303]newString=helloworld



PS:处理字母等其他元素只需将NSCharacterSet的值改变即可。





复制代码代码如下:





+(id)controlCharacterSet;



+(id)whitespaceCharacterSet;



+(id)whitespaceAndNewlineCharacterSet;



+(id)decimalDigitCharacterSet;



+(id)letterCharacterSet;



+(id)lowercaseLetterCharacterSet;



+(id)uppercaseLetterCharacterSet;



+(id)nonBaseCharacterSet;



+(id)alphanumericCharacterSet;



+(id)decomposableCharacterSet;



+(id)illegalCharacterSet;



+(id)punctuationCharacterSet;



+(id)capitalizedLetterCharacterSet;



+(id)symbolCharacterSet;



+(id)newlineCharacterSetNS_AVAILABLE(10_5,2_0);



+(id)characterSetWithRange:(NSRange)aRange;



+(id)characterSetWithCharactersInString:(NSString)aString;



+(id)characterSetWithBitmapRepresentation:(NSData)data;



+(id)characterSetWithContentsOfFile:(NSString)fName;



二、用字符将NSArray中的元素拼接起来



复制代码代码如下:



NSArrayarray=[NSArrayarrayWithObjects:@"hello",@"world",nil];



//如要用,:等字符串拼接,只需将下面的@""空格换成@","或@":"即可

NSStringstring=[arraycomponentsJoinedByString:@""];



NSLog(@"string=%@",string);





打印结果:



helloworld



三、截取子串:



这里以获取时间为例,利用NSDate获取到当前时间时,有时候只需要日期或者只需要时间



1、从字符串开头截取到指定的位置,如





复制代码代码如下:



//获取到当前日期时间

NSDatedate=[NSDatedate];



//定义日期格式,此处不重点讨论NSDate,故不详细说明,在后面会详细讨论

NSDateFormatterdateformatter=[[NSDateFormatteralloc]init];



//设置日期格式

[dateformattersetDateFormat:@"YYYY-MM-ddHH:mm"];



//将日期转换成NSString类型

NSStringstring=[dateformatterstringFromDate:date];

NSLog(@"\ncurrent=%@",string);



//截取日期substringToIndex

NSStringcurrentDate=[stringsubstringToIndex:10];



NSLog(@"\ncurrentDate=%@",currentDate);





打印结果:



current=2016-01-1711:12currentDate=2016-01-17



2、抽取中间子串-substringWithRange





复制代码代码如下:





//截取月日

NSStringcurrentMonthAndDate=[stringsubstringWithRange:[NSMakeRange(5,5)]];



NSLog(@"currentMonthAndDate=%@",currentMonthAndDate);





打印结果:



currentMonthAndDate=06-27



3、从某一位置开始截取-substringFromIndex





复制代码代码如下:





//截取时间substringFromIndex

NSStringcurrentTime=[stringsubstringFromIndex:11];



NSLog(@"\ncurrentTime=%@",currentTime);\





打印结果:



currentTime=11:25



四、比较字符串





复制代码代码如下:





NSStringfirst=@"string";

NSStringsecond=@"String";





1、判断两个字符串是否相同-isEqualToString方法



复制代码代码如下:





BOOLisEqual=[firstisEqualToString:second];



NSLog(@"firstisEqualtosecond:%@",isEqual);





打印结果:



firstisEqualtosecond:0



2、compare方法比较字符串三个值





复制代码代码如下:





NSOrderedSame//是否相同

NSOrderedAscending//升序,按字母顺序比较,大于为真

NSOrderedDescending//降序,按字母顺序比较,小于为真



BOOLresult=[firstcompare:sencond]==NSOrderedSame;

NSLog(@"result:%d",result);





打印结果:



result:0





复制代码代码如下:







BOOLresult=[firstcompare:second]==NSOrderedAscending;

NSLog(@"result:%d",result);





打印结果:



result:0





复制代码代码如下:







BOOLresult=[firstcompare:second]==NSOrderedDecending;NSLog(@"result:%d",result);







打印结果:



result:1



3、不考虑大小写比较字符串





复制代码代码如下:





BOOLresult=[firstcompare:second

options:NSCaseInsensitiveSearch|NSNumericSearch]==NSOrderedSame;

NSLog(@"result:%d",result);





打印结果:



result:1



五、改变字符串大小写





复制代码代码如下:





NSStringaString=@"AString";

NSStringstring=@"String";

//大写

NSLog(@"aString:%@",[aStringuppercaseString]);

//小写

NSLog(@"string:%@",[stringlowercaseString]);

//首字母大小写

NSLog(@"string:%@",[stringcapitalizedString]);





打印结果:



aString:ASTRINGstring:stringstring:String



六、在字符串中搜索子串



复制代码代码如下:



NSStringstring1=@"Thisisastring";

NSStringstring2=@"string";

NSRangerange=[string1rangeOfString:string2];

NSUIntegerlocation=range.location;

NSUIntegerleight=range.length;

NSStringastring=[[NSStringalloc]initWithString:[NSStringstringWithFormat:@"Location:%li,Leight:%li",location,leight]];

NSLog(@"astring:%@",astring);

[astringrelease];



打印结果:



astring:Location:10,Leight:6





















献花(0)
+1
(本文系白狐一梦首藏)