objective C中的字符串(三)

objective C中的字符串(三),第1张

概述holydancer原创,如需转载,请在显要位置注明: 转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7343561 objective C中的字符串 *** 作 在OC中创建字符串时,一般不使用C的方法,因为C将字符串作为字符数组,所以在 *** 作时会有很多不方便的地方,在Cocoa中NSString集成的一些

@H_403_9@

holydancer原创,如需转载,请在显要位置注明:@H_403_9@

转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7343561@H_403_9@

objective C中的字符串 *** 作@H_403_9@


@H_403_9@

在OC中创建字符串时,一般不使用C的方法,因为C将字符串作为字符数组,所以在 *** 作时会有很多不方便的地方,在Cocoa中Nsstring集成的一些方法,可以很方便的 *** 作字符串,下面举几个例子:@H_403_9@


@H_403_9@

1、创建:
@H_403_9@

直接利用等号赋值@H_403_9@

Nsstring * str1=@"我是字符串";@H_403_9@

stringWithFormat方法@H_403_9@

Nsstring *str2=[Nsstring stringWithFormat:@"我是参数字符串%d,%d",11,111"];@H_403_9@

2,合并:@H_403_9@

Nsstring 字符串是不可改变的,可以在原字符串的基础上生成新的字符串,但是原字符串并没有改变,但是Nsstring 提供了一个子类:NSMutableString.该类是可变的,Nsstring可用的方法也同样适用于NSMutableString,但是使用之前要预先声明:@H_403_9@

NSMutableString *str3 = [NSMutableString stringWithCapacity:50];@H_403_9@

 需要注意的是,该处声明时虽然给了50的容量,但是NSMutableString会自动扩充,所以不用担心给的空间小了。@H_403_9@

创建了NSMutableString字符串,我们就可以进行合并 *** 作了,常用方法有:@H_403_9@

@H_403_9@

   NSMutableString *str3 =[NSMutableString stringWithCapacity:50];        Nsstring *str4=@"Nsstring 字符串";        [str3 appendString:str4];        [str3 appendFormat:@"%d",5];        NSLog(str3);
以上代码输出结果为:“ Nsstring字符串5”;

@H_403_9@

3,删减:@H_403_9@

字符串的删减,需要用到一个辅助结构体:NSRange;@H_403_9@

NSRange的两个属性length,location,既可用于图形辅助,又可用于字符串辅助,在字符串辅助中,表示字符串中的一段范围,location指起始位置,length指包含字符的个数。创建NSRange的方法有三种:@H_403_9@

(一)@H_403_9@

NSRange range;@H_403_9@

range.location = 10;@H_403_9@

range.length = 2;@H_403_9@

(二)@H_403_9@

NSRange range={10,2};@H_403_9@

(三)@H_403_9@

NSRange range=NSMakeRange(10,2);//此种方法较为常用。@H_403_9@

下面看段代码,如何使用NSRange辅助修改字符串内容:@H_403_9@

@H_403_9@


@H_403_9@

#import <Foundation/Foundation.h>int main(int argc,const char * argv[]){    @autoreleasepool {              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);                           }    return 0;}
输出结果如下:

I  holydancer,2,2@H_403_9@


@H_403_9@

4,比较:@H_403_9@

(一)是否相等的比较:@H_403_9@

和java中某些情况类似,字符串并不能直接用==比较,==比较的是两个字符串是否是同一个对象,而我们要比较的通常是两个字符串是否相等,这时应该使用isEqualToString,而不是用==比较其指针值。isEqualToString的返回值是BOol类型,为YES和NO。@H_403_9@

@H_403_9@

#import <Foundation/Foundation.h>int main(int argc,const char * argv[]){    @autoreleasepool {                Nsstring *str1 = @"holydancer";        Nsstring *str2 = @"holydancer";        if([str1 isEqualToString:str2])        {            NSLog(@"字符串内容相等");        }               }    return 0;}
(二)字符串大小的比较:

@H_403_9@

字符串根据排列顺序的不同,会有大小的差异,如果我们要比较两个字符串的大小的话,可以使用compare方法。compare 方法返回的结果有三种:NSOrderedAscending,NSOrderedSame,NSOrderedDescending,另外,在使用compare方法时可以添加参数来决定是否区分大小写,或者声明为比较字符串个数而不是字符值等比较条件。@H_403_9@

具体使用看如下DEMO:@H_403_9@

@H_403_9@

#import <Foundation/Foundation.h>int main(int argc,const char * argv[]){    @autoreleasepool {                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");        }            }    return 0;}

@H_403_9@

如果要忽略大小写的话,可以在options 里面加一个参数NSCaseInsensitiveSearch;具体如下@H_403_9@

NSComparisonResult result2 =[str1 compare:str2 options:NSCaseInsensitiveSearch];@H_403_9@

和NSCaseInsensitiveSearch对应的条件还有NSliteralSearch(区分大小写),NSNumericSearch(按字符个数比较),并可以使用"|"来同时满足多个条件。@H_403_9@

(三)判断字符串的开头和结尾@H_403_9@

hasPrefix方法判断是否以某字符串开头,hasSuffix判断是否以某字符串结尾。@H_403_9@

@H_403_9@

#import <Foundation/Foundation.h>int main(int argc,const char * argv[]){    @autoreleasepool {                Nsstring *str1 = @"holydancer";        if ([str1 hasPrefix:@"holy"]) {            NSLog(@"str1以holy开头");        }        if ([str1 hasSuffix:@"dancer"]) {            NSLog(@"str1以dancer结尾");        }                    }    return 0;}

@H_403_9@

关键字:objective-c ,objective c , oc ,字符串@H_403_9@ 总结

以上是内存溢出为你收集整理的objective C中的字符串(三)全部内容,希望文章能够帮你解决objective C中的字符串(三)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1061900.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存