Objective-C Foundation——字符串

来源:互联网 发布:淘宝手机店铺宝贝链接 编辑:程序博客网 时间:2024/05/17 04:12

NSString创建字符串

NSString 的string WithFormat:方法 是通过格式字符串和参数来创建的。 原形    +(id)string WithFormat:(NSString*)format;

   创建字符串的三种方式:

NSString *str=@"中国人,my";//现在常用的方法

       NSLog(@"%@",str);

        

    NSString *string1=[NSString stringWithFormat:@"Your height is %ifeet,%i inches",5,11];//这个方法可以加格式控制符之类的。如%i ,很重要的。

        NSLog(@"%@",string1);

       

        NSString *str2=[NSString stringWithString:@"Your height is 5 feet,11 inches"];//这是要淘汰的方法。等效于第1种方法。

       NSLog(@"%@",str2);


字符串长度 length

它返回字符串的字符个数。


       

        NSLog(@"%lu",[str length]);

        NSLog(@"%lu",[string1 length]);

        NSLog(@"%lu",[str2 length]);

//也可以在表达式中使用它。

        if ([str length]>35)

        {

            NSLog(@"hehe");

        }

=======================================================================================================

字符串比较

    isEqualToString表示两个字符串的内容是否相同。可以用来比较接收方(接收消息的对象)和当作参数传递来的字符串。isEqualToSting:返回一个BOOL(YES或NO),型数据来表示两个字符串的内容是否相同。

原形:  -(BOOL) isEqualToString:(NSString*)astring;

ISEqualTOstring判断两个字符串是否相等,返回BOOL类型。


        NSString *str3=@"hello 5";

       NSString *str4=[NSString stringWithFormat:@"hello %i",5];

        

       if ([str3 isEqualToString:str4])//判断两个字符串是否相等。

        {

            NSLog(@"They are the same!");

        }

--------------------------------------------------------------------------------------------

要比较两个字符串,可以使用compare:方法:

-(NSComparisonResult) compare:(NSString*)string;

compare等效于cstrcmp字符串比较大小返回的NSComparisonResult型数据


        NSOrderedAscending :左侧字符串小于右侧字符串

         NSOrderedSame  :左侧字符串等于右侧字符串

         NSOrderedDescending:左侧字符串大于右侧字符串。


NSString *thing1=@"abc";

       NSString *thing2=@"abd";

        if ([thing1 compare:thing2]==NSOrderedAscending )//NSOrderedAscending :左侧字符串小于右侧字符串

        {

            NSLog(@"thing1<thing2");

        }

        if ([thing1 compare:thing2]==NSOrderedSame)//NSOrderedSame  :左侧字符串等于右侧字符串

        {

            NSLog(@"thing1=thing2");

        }

        

        if ([thing1 compare:thing2]==NSOrderedDescending)//NSOrderedDescending:左侧字符串大于右侧字符串。

        {

            NSLog(@"thing1>tihing2");

        }


compare:options:方法。options是个条件,

-(NSComparisonResult) compare:(NSString*)string  options:(unsigned)mask;

options参数是一个位掩码,可以使用位运算符(|)来添加选项标记。

              NSCaseInsensitiveSearch  //不区分大小写

              NSLiteralSearch     //区分大小写。

              NSNumericSearch  //数值比较。


NSString *th1=@"abc";

       NSString *th2=@"abC";

        if ([th1compare:th2options:NSCaseInsensitiveSearch|NSNumericSearch]==NSOrderedSame)

        {

           NSLog(@"They match!");

        }


============================================================================================

字符串的查找


prefix:前缀suffix:后缀。

hasPrefix:检查字符串是否有另一个字符串开头,

hasSuffix:检查字符串是否有另一个字符串结尾。


         NSString *filename=@"draft-chapter.mov";//判断前缀是否有 draft头用的很少。

       if ([filename hasPrefix:@"draft"])

        {

            NSLog(@"draft is prefix");

        }

       if ([filename hasSuffix:@".mov"])//判断后缀是否有.mov 经常使用的。

        {

            NSLog(@".mov is suffix");

        }



rangeOfString,判断中间是否有。

 -(NSRange)rangeOfString:(NSString*)astring      返回的是结构体变量。


        NSString *filename1=@"draft-chapter.pages";

       NSRange range5;

        range5=[filename1 rangeOfString:@"chapter"];

       NSLog(@"%lu ,%lu",range5.location,range5.length);





        小写改大写  uppercaseString

       NSString *res;

        res=[filename uppercaseString];//小写改大写。

       NSLog(@"%s",[res UTF8String]);

        

        大写改小写lowercaseString;

       

       NSString *xiaoxie;

        xiaoxie=[res lowercaseString];//大写改为小写

       NSLog(@"%@",[xiaoxie lowercaseString]);









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

可变字符串

NSString是常量不可改变的。

mutable可变的    capacity容量的。

NSMutableStringnsstring的字类。

 NSMutableString是用来创建可变字符串。

+(id)stringWithCapacity:(unsigned) capacity;

这个容量只是给NSMutableString的一个建议,字符串的大小并不仅限于所提供的容量,这个容量仅是个最优值。

  

 附加字符串

       appendString:接收参数,然后将其复制到接收对象的末尾。

       appendFormat:的工作方式与stringWithFormat:类似,但它将格式化的字符串附加到接收字符串的末尾,而不是创建新字符串对象。

        -(void)appendStrin:(NSString*)aStrin;//普通添加。

        -(void)appendFormat:(NSString*)aStrin; //带格式控制字符串的方式。

      

        NSMutableString *string2;

        string2=[NSMutableString  stringWithCapacity:50];

        [string2 appendString:@"Hello there "];//普通附加

       NSLog(@"%@",string2);

        [string2 appendFormat:@"human %d",39];//用带格式控制字符串的方式。

        NSLog(@"%@",string2);



插入字符串

 -(void)insertString:(NSString*)aString atIndex:(NSUInteger)loc;

       //第一个参数是要插入的字符串,第二个参数是要插入的位置

        [string2insertString:@"world "atIndex:6];

       NSLog(@"%@",string2);


替换字符串

-(void)replaceCharacterInRange:(NSRange) withString:(NSString*)aString;

        

       NSRange range6=[string2 rangeOfString:@"human"];//查找human在字符串中的范围。

        [string2 replaceCharactersInRange:range6 withString:@"are"];//替换字符串。

        

       NSLog(@"%@",string2);


删除字符串

NSRange range7=[string2 rangeOfString:@"Hello"];

        [string2 deleteCharactersInRange:range7];

       NSLog(@"%@",string2);

        

        //删除指定位置。

       NSRange range8= NSMakeRange(3,2);

        [string2 deleteCharactersInRange:range8];

       NSLog(@"%@",string2);

原创粉丝点击