1.字符串截取
NSString *str = @"1234567qwert";
NSLog(@"%@", [str substringFromIndex:2 ] ); //从指定位置到尾部截取
NSLog(@"%@", [str substringToIndex:4] ); //从开始位置截取到指定位置,不包含指定位置
NSLog(@"%@", [str substringWithRange:NSMakeRange(2,3) ] ); //截取字符串的宽度和位置
2.字符串分割
NSString *str = @"1*2*s*a*c*X*Z";
NSArray *array = [str componentsSeparatedByString:@"*"];
NSLog(@"%@",array); //结果为:1, 2,s,a,c,X,Z
3.字符串合并
NSString字符串是不可改变的,可以在原字符串的基础上生成新的字符串,但是原字符串并没有改变,但是NSSting提供了一个子类:NSMutableString 。该类是可变的,NSString可用的方法也同样适用于NSMutableString,但是使用之前要预先声明:
NSMutableString *str = [NSMutableString stringWithCapacity:50];
需要注意的是,该处声明时虽然给了50的容量,但是NSMutableString会自动扩充,所以不用担心给的空间小了。
创建了NSMutableString字符串,我们就可以进行合并操作了,常用方法有:
NSMutableString *str = [NSMutableString stringWithCapacity:50];
NSString *str1 = @"NSString 字符串";
[str appendString:str1];
[str appendFormat:@"%d",5];
NSLog(str);
//以上输出代码结果为 :"NSString 字符串 5";
4.字符串删减
字符串的删减,需要用到一个辅助结构体:NSRange;
NSRange的两个属性 length,location,既可用于图形辅助,又可用于字符串辅助,在字符串辅助中,表示字符串中的一段范围,location指起始位置,length指包含字符串的个数。
创建NSRange的方法:
(1)NSRange range;
range.location = 10;
range.length = 2;
(2)NSRange range = {10,2};
(3)NSRange range = NSMakeRange(10,2);
以下为使用NSRange辅助修改字符串内容:
NSMutableString *str = [NSMutableString stringWithCapacity:5];
[str appendString:@"I am holydancer"];
//判断str里是否有"am" ,并将其范围取出
NSRange range = [str rangeOfString:@"am"];
[str deleteCharactersInRange:range];
NSLog(@"%@,%lu,%lu",str,range.length,range.location);
//输出结果: I holydancer,2,2
5.比较:
是否相等比较:
使用isEqualToString,而不是用==比较其指针值。isEqualToString的返回值是BOOL类型,为YES和NO。
大小的比较:
字符串根据排列顺序的不同,会有大小的差异,如果我们要比较两个字符串的大小的话,可以使用compare方法。compare 方法返回的结果有三种:NSOrderedAscending,NSOrderedSame,NSOrderedDescending,另外,在使用compare方法时可以添加参数来决定是否区分大小写,或者声明为比较字符串个数而不是字符值等比较条件。
- NSString *str1 = @"holydancer";
- NSString *str2 = @"dancerholy";
- NSComparisonResult result1 =[str1 compare:str2];
- if (result1==NSOrderedSame) {
- NSLog(@"相等");
- }else if (result1 == NSOrderedAscending) {
- NSLog(@"str1小于str2");
- }else {
- NSLog(@"str1大于str2");
- }
如果要忽略大小写的话,可以在options 里面加一个参数NSCaseInsensitiveSearch;具体如下
NSComparisonResult result2 =[str1 compare:str2 options:NSCaseInsensitiveSearch];
和NSCaseInsensitiveSearch对应的条件还有NSLiteralSearch(区分大小写),NSNumericSearch(按字符个数比较),并可以使用"|"来同时满足多个条件。
判断字符串的开头和结尾
hasPrefix方法判断是否以某字符串开头,hasSuffix判断是否以某字符串结尾。
- NSString *str1 = @"holydancer";
- if ([str1 hasPrefix:@"holy"]) {
- NSLog(@"str1以holy开头");
- }
- if ([str1 hasSuffix:@"dancer"]) {
- NSLog(@"str1以dancer结尾");
- }
本文介绍了NSString的基本操作,包括字符串的截取、分割、合并和删减。通过substringFromIndex、substringToIndex、substringWithRange方法实现截取,componentsSeparatedByString用于分割,NSMutableString实现字符串合并,利用NSRange进行删减操作。同时,还探讨了字符串的相等比较、大小比较以及判断开头和结尾的方法。

963

被折叠的 条评论
为什么被折叠?



