字符串和可变字符串

一、字符串的初始化方式

1.不常使用的初始化

   方法一

    NSString *string = [[NSString alloc] init];

    方法二

     NSString *string1 = [[NSString alloc] initWithString:string];//初始化同时赋值

     示例:NSString *string1 = [[NSString alloc] initWithString:@“邹贤”];

2.常使用的初始化

       方法一

       NSString *string = [NSString string];

        方法二

        NSString *string1 = @“value”;//初始化的同时并赋值

        示例:NSString *string1 = @“邹贤”

3.字符串处理

 1)字符串的格式化处理

  NSString *name = [NSString stringWithFormat:<#(NSString *), …#>];

 int age = 18;

 NSString *string = [[NSString alloc]initWithFormat:@“%d",age];

2)从哪个位置开始截取字符串(截取哪一个位置的字符串)

   NSString *name1 = [name substringFromIndex:<#(NSUInteger)#>];//Index不是下标,所以不是从0开始

 3)截取字符串到那个位置

    NSString *name2 = [name substringToIndex:<#(NSUInteger)#>];

 4)截取字符串从哪到哪的值

        在开始学习这个知识点以前先让我们回顾一下结构体的使用方法:

         结构体的关键字是struct,我们可以把它看成一个整体,它是由不同数据类型组成的一个整体。结构如下:

           typedef struct Person {

                   int age; //定义一个整型类型的年龄

                   char *name;//定义一个字符类型的名字

            }Person;

注意:在结构体里面我们一般是定义某个类的所有类型,在定义完后是以分号结束,而不是像枚举类型是以逗号结束。

  使用方法:

           Person peson;//这里Person是一个类型

           peson.age = 20;

           peson.name = "大白";

       

  A.结构体是对事物的一个抽象

         NSRange range;

     A.a:定义range结构体的位置

        range.location = 6;//这里是从字符串的第6个位置开始

     A.b:在这个位置的基础之上 继续数几个长度

         range.length = 5;

   NSString *name3 = [name substringWithRange:range]);

截取字符串从到哪新方法

  NSString *res = [message substringWithRange:NSMakeRange(6, 5)];

  NSLog(@"Chars from index 6 through 5: %@", res);


  5)把字符串通过指定字符分割成数组

      NSString *result = @"武松打虎 duang!duang!duang! 老虎跑下山 ya~ya~ya~";

      NSArray *wordList = [result componentsSeparatedByString:@" "];

       //通过快速遍历把数组里的内容遍历出来

       for (NSString *obj in wordList) {

       NSLog(@"%@", obj);

            }


     6)英文字母转换

      a. // 把所有英文字母 转成大写

        NSString *word = @"zouXian";

        NSLog(@"%@", word.uppercaseString);

         ZOUXIAN

       b.// 把所有英文字母 转成小写

        NSLog(@"%@", word.lowercaseString);

        zouxian

         c. //把英文字母首字母 转成大写

        NSLog(@"%@", word.capitalizedString);

        Zouxian

        7)拼接字符串

         //拼接字符串

        NSString *ss = @"我是";

        NSString *ss1 = @"好人";

        方法一

          // 1、stringWithFormat

          NSLog(@"%@", [NSString stringWithFormat:@"%@中国%@", ss, ss1]);

           我是中国好人

        方法二

          // 2.stringByAppendingString

          NSLog(@"%@", [ss stringByAppendingString:ss1]);

           我是好人

          方法三

         // 3.stringByAppendingFormat

        NSLog(@"%@", [ss stringByAppendingFormat:@"%@不止一天两天三四天", ss1]);

             我是好人不止一天两天三四天

    

8)查询字符串

     // 4.判断字符串 是否包含某个字符串

        NSString *name = @"上山打老虎跑了";

        NSRange range = [name rangeOfString:@“老虎”];

        if((range119.location |= NSNotFound)){//通过查找位置信息来查找需要查找字符串的信息

             NSLog(@"%@", name);

        }else {

            NSLog(@"骗人~~~~");

        }

9) a.判断字符串以什么开始(字符串的头部包含什么内容)

        if ([name hasPrefix:@"上山"] != NO) {

         NSLog(@"%hhd", YES);//如果判断为真,则输出1

        }else{

            NSLog(@"%hhd", NO);//如果判断为假,则输出0

        }


     b.字符串以什么结束(字符串的尾部包含什么内容)

        if([sss hasSuffix:@"走了"] != NO){

            NSLog(@"%hhd", YES);//如果判断为真,则输出1

        }else{

            NSLog(@"%hhd", NO);//如果判断为假,则输出0

        }

二、可变字符串

类名: NSMutableString

1.把指定位置的字符串 替换成另一个字符串

    NSRange range;

     range.location = 2;

     range.length = 4;   

NSMutableString *hero = [[NSMutableString alloc]initWithString:@"我是德玛西亚"];

[hero replaceCharactersInRange:range withString:@"麦林炮手"];

        NSLog(@"%@", hero);


2. 删除指定长度的字符串

        range.location = 0;

        range.length = 2;

       [hero deleteCharactersInRange:range];

        NSLog(@"%@", hero);

你可能感兴趣的:(iOS软件开发OC基础)