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
|