OC的字符串

来源:互联网 发布:李炎恢php第四季下载 编辑:程序博客网 时间:2024/04/28 22:27

//一. 不可变字符串创建的方法

//1. 字面量 

    NSString *str1 =@"hello world";

//2. 通过alloc init 创建一个空字符串.

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

    str2 = @"hello world";

    NSLog(@"%@",str2);

//3. 这个方法是多余的,系统会提示用@""直接赋值.

    NSString *str3 = [[NSString alloc]initWithString:@"hello"];

    NSLog(@"%@",str3);

//4. 系统提供的便利构造器的方法.

    NSString *str_4 = [NSString stringWithString:@"哈哈"];

    NSLog(@"%@",str_4);

//5. 用便利构造器和初始化方法创建字符串对象是可以,也能正常使用,但是系统还是更倾向于用字面量的方法来创建对象.

    NSString *stu_5 = [NSString stringWithFormat:@"嘿嘿"];


//二. 不可变字符串的属性和方法

//1 不可变字符串系统设定的属性lenth -字符串长度

    NSString *str = @"你好,欢迎学习OC!";

    NSLog(@"%ld",str.length);


//2 不可变字符串的方法:


   // 1. characterAtIndex -- 获取内容

           //通过指定下标获取字符内容.小写的c获取英文部分,大写的C可以获取汉字.

    NSLog(@"%c",[str characterAtIndex:0]);


   // 2. substringFromIndex -- 截取

     //从哪开始截取,一直到最后,也包括下标的内容.

    NSString *str =@"你好,欢迎学习OC!";

   NSLog(@"substringFormIndex:%@",[str substringFromIndex:5]);

    // 打印结果为: 学习OC! 


   // 3. substringToIndex -- 截取

     // 0开始截取5.

    NSString *str = @"你好,欢迎学习OC!";

   NSLog(@"substringToIndex:%@",[str substringToIndex:5]);

   // 打印结果为: 你好,欢迎 

      

   // 4. substringWithRange -- 截取

     // NSRange是一个结构体,提供了两个成员变量,第一个是位置,第二个是长度.

        从NSRange的第一个参数开始截取,截取的长度是第二个参数.可以提前写出NSRange,也可以在过程中创建一个.

    NSString *str = @"你好,欢迎学习OC!";

    NSRange range = {3,7};

    NSLog(@"substringWithRange1:%@",[str substringWithRange:range]);

    NSLog(@"substringWithRange2:%@",[str substringWithRange:NSMakeRange(3,7)]);

    // 打印结果为: 欢迎学习OC!


  // 5. isEqualToString -- 判断相同

   //判断两个字符串内容是否相同.

    NSString *str1 =@"刘狗儿";

    NSString *str2 =@"刘傻儿";

    NSLog(@"%d",[str1 isEqualToString:str2]);

    // 打印结果为:


   //比较两个字符串的地址是否相同.

   if(str1 == str2){

        NSLog(@"%d",1);

    }

    

   // 6. hasPrefix  hasSuffix -- 判断前后缀

      // prefix suffix前后缀. 判断前后缀.

    NSString *str =@"Liu sha ";

    NSString *prefix =@"liu";

    NSLog(@"%d",[str hasPrefix:prefix]);

      // 打印结果为: 0

    

    // 7. integerValue  intValue -- 转换

     // 把字符串 -> 基本数据类型.

    NSString *strNum =@"12345";

    NSInteger num1 = [strNum integerValue];

    NSLog(@"%ld",num1);

    // 打印结果为:12345

    NSString *strN2 =@"1234pp5";

   int num2= [strN2 intValue];

    NSLog(@"%d",num2);

    // 打印结果为: 1234 

    // 因为到p时就不转换了,后面的直接舍弃.

    

   // 8.stringWithFormat 

     // 此方法可以把任意类型转换成字符串类型,可以进行拼接.

     CGFloat a =3.14;

     NSInteger b =10;

     NSString *str = [NSString stringWithFormat:@"%g,%ld,%@",a,b,@"啦啦啦啦啦了~"];

     NSLog(@"%@",str);

     // 打印结果为:3.14,10,啦啦啦啦啦了~


  // 9.uppercaseString --  全变大写.

       lowercaseString --  全变小写

       capitalizedString -- 只有首字母变大写,其余小写.

    NSString *str =@"liu xIn qi";

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

     // 打印结果为: LIU XIN QI

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

     // 打印结果为: liu xin qi

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

     // 打印结果为: Liu Xin Qi


   // 10.compare -- 比较

    // 对应只有三种结果: 一个是ASC升序(-1),一个是same(0),一个是降序DESC(1).

   NSString *str1 =@"nihao";

   NSString *str2 =@"buhao";

   NSLog(@"%ld",[str1compare:str2]);

    // 打印结果为: 1

    

   // 11.stringByAppendingString -- 字符串拼接

   NSString *str =@"liu";

   NSString *str1 =@"xin";

   NSString *newstr = [strstringByAppendingString:str1];

   NSLog(@"%@",newstr);

    // 打印结果为: liuxin

    

    // 11.stringByReplacingOccurrencesOfString -- 字符串的替换

   NSString *str =@"haha是傻子";

   NSString *newstr = [str stringByReplacingOccurrencesOfString:@"haha" withString:@"刘鑫奇"];

   NSLog(@"%@",newstr);

    // 打印结果为: 刘鑫奇是傻子

    

//三. 可变字符串创建的方法 

     // 不可变字符串: NSString.

    // 可变字符串:NSMutableString,他是NSString的子类.

    //使用字面量的方式创建的是不可变字符串,只能拿不可变的指针来接受,所以可变字符串不能用字面量来创建.

     NSMutableString *str = @"杨林";


// 1. 通过alloc init 创建一个空字符串. 

    NSMutableString *str = [[NSMutableString alloc] init];

    NSMutableString *str = [[NSMutableString alloc] initWithString:@"啦啦啦啦"];

// 2. 系统提供的便利构造器的方法.

    NSMutableString *str2 = [NSMutableString stringWithString:@"啦啦~"];

    NSMutableString *str1 = [NSMutableString stringWithFormat:@"%@",@"哈哈"];

    

//四. 可变字符串的属性和方法 

    //因为是NSString的子类,所以他继承父类的所有方法.


    NSMutableString *str = [NSMutableString stringWithString:@"12345678910"];

    // 1. insertString -- 可变插入

    [str insertString:@"啦啦啦" atIndex:8];

    NSLog(@"%@",str);

    // 打印结果为:12345678啦啦啦910

 

    // 2. replaceCharactersInRange -- 可变替换

    [str replaceCharactersInRange:NSMakeRange(14,3) withString:@"你不好"];

    NSLog(@"%@",str);

    // 打印结果为:12345你不好910


    // 3. setString -- 可变设置.

    [str setString:@"老奶奶找狗"];

    NSLog(@"%@",str);

    // 打印结果为:老奶奶找狗


    // 4. appendString -- 可变拼接.

    [str appendString:@"哈哈哈哈哈哈"];

    NSLog(@"%@",str);

    // 打印结果为:老奶奶找狗哈哈 哈哈 哈哈


   /*

     可变字符串在方法上一般都是没有返回值的,都是对自身的内容进行修改,在访问的时候字符串已经发生了改变,但是不可变字符串会产生一个新的字符串,一般方法会返回NSString *;

    */

    

    // 练习.

    NSString *str_ =@"fjkgla.png";

    //NSString *suffix = @"png";

    NSLog(@"原字符串:%@",str_);

   if ([str_ hasSuffix:@".png"]) {

        NSString *newStr = [str_  stringByReplacingOccurrencesOfString:@".png" withString:@".jpg"];

        NSLog(@"新字符串:%@",newStr);

    }else{

        NSString *newStr = [str_ stringByAppendingString:@".jpg"];

        NSLog(@"新字符串:%@",newStr);

     }

    

    



0 0
原创粉丝点击