黑马程序员——NSSstring与NSMutableString的使用

本文详细介绍了iOS开发中常用的两种字符串类型——NSSstring和NSMutableString。讲解了NSSstring的基本使用以及NSMutableString作为可变字符串的特性和操作方法,帮助开发者更好地掌握字符串操作技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

NSSstring的使用

1.字符串对象常量的定义和输出
    定义了一个字符串指针,指向字符串常量
    char *str="hello world";
    @"hello world"oc中的字符串常量
    本质:字符串对象
     NSString *str=@"hello world";
     输出一个对象
     oc中任意对象都使用%@输出
     NSLog(@"str=%@",str);

 2.创建字符串对象   alloc+init形式创建

        从c的字符串去创建一个字符串对象
        NSString *str2=[[NSString alloc] initWithUTF8String:"tian qi bu cuo"];   
        NSLog(@"str2=%@",str2);
        
       从其他数据生成字符串对象
       生成一个字符串“张三 20 B”
        int age=20;
        int sex='B';
        NSString *str3=[[NSString alloc]initWithFormat:@"zhangsan %d %c",age,sex];
        NSLog(@"str3=%@",str3);

      从另外一个字符串对象创建对象
       NSString *str4=[[NSString alloc]initWithString:str3];
       NSLog(@"str4=%@",str4);

    附加:写答题系统题的时候,输入一个字符串,使用NSString处理,先定义一个字符数组
        char buf[256]={};
        scanf("%s",buf);
        NSString *input=[[NSString alloc]initWithUTF8String:buf];
        NSLog(@"input = %@",input);
        附加2:类方法创建字符串对象
        NSString *str5=[[NSString alloc] initWithUTF8String:"hello"];
        NSLog(@"str5=%@",str5);
        NSString *str6=[[NSString alloc]initWithFormat:@"%d",100];
        NSLog(@"str6=%@",str6);
        NSString *str7=[[NSString alloc]initWithString:str6];
        NSLog(@"str7=%@",str7);

3.计算长度
   
        NSString *str8=@"88888";
        long len=[str8 length];
        NSLog(@"len=%ld",len);

4.比较字符串(判断相等和比较)
        NSString *str9=@"88888";
        //判断str8是否和str9相等
        BOOL b;
        b=[str9 isEqualToString:str8];
        //判断一个BOOL值是否为真的时候
        if(b)              //正确的形式
        {
            NSLog(@"字符串相等");
        }
        // BOOL l类型
        // 窗口是否移动,是否显示。。。
        //   方法,执行成功,执行失败;
        //   bool存放两种值(真yes假no)
        
        NSString *str10=@"helloB";
        NSString *str11=@"helloA";
        //前面的字符串比较后面的字符串
        //r=-1 前面小  r=1前面大  r=0相等
        int r=[str10 compare:str11];
        NSLog(@"r=%d",r);
5.查找子串
        //        5.查找子串
        NSString *str12=@"hello world";
        //NSString *str13=@"wor";
        //@"hello world"中查找@“wor”字符串的位置
        NSRange range=[str12 rangeOfString:@"wor"];
        NSLog(@"location=%lu,length=%lu",range.location,range.length);
        if (range.location!=NSNotFound) {
            NSLog(@"找到了");
        }
6.提取字符和字符串
    
   //        6.提取字符和字符串
        NSString *str13=@"心比tian高,命比zhi薄";
        //提取其中的某个字符第一个字符,和第三个字符
        //为了支持返回汉字,返回值类型nuichar类型
        //unichar 类型的字符用%C输出
        unichar c = [str13 characterAtIndex:0];
        NSLog(@"c = %C",c);
        //如何提取某个范围内的字符串,提取tian
        NSRange subRange={2,4};
        NSString *sub1=[str13 substringWithRange:subRange];
        NSLog(@"sub1=%@",sub1);
        //提取从index下标开始,一直到结尾的字符串
        NSString *sub2=[str13 substringFromIndex:2];
        NSLog(@"sub2=%@",sub2);
        //从头开始提取,提取到指定的下标位置
        NSString *sub3=[str13 substringToIndex:5];
        NSLog(@"sub3=%@",sub3);
7.转换
 
       //        7.转换
        NSString *str14=@"12345我爱吃土豆";
        int num=[str14 intValue];
        NSLog(@"str14=%d",num);
        //类似的方法是floatValue  doubleVlaue  boolValue
        //需求;从字符串对象获取c格式的字符串
        NSString *mayiliSay=@"na shen me zheng jiu ni,my lover";
        const char *utfstr=[mayiliSay UTF8String];
        NSLog(@"utfstr=%s",utfstr);
8.从文件生成字符串
       //        8.从文件生成字符串
        // 文件路径: /Users/apple/Desktop/dict.txt
        NSString *filePath=@"/Users/apple/Desktop/dict.txt";
        //nil oc中的空指针
        //效果:filePath文件的内容存到fileContent
        NSString *fileContent=[[NSString alloc]initWithContentsOfFile:filePath       encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"fileContent = %@",fileContent);
9.字符串的分割和合并(使用另外一个字符串分割)
        NSString *str=@"xian kan ting qian hua kai hua luo";
        NSArray *array=[str componentsSeparatedByString:@" "];
        NSLog(@"array=%@",array);
        // <1>字符串的分割(使用字符集合分割)
        //分割出名字,年龄,性别,体重
        //分隔符:“;,”
        NSString *str2=@"zhangsan:188,B,120";
        array = [str2 componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@":,"]];
        NSLog(@"array=%@",array);
        
        //<2>数组合并为一个字符串
        NSString *comString=[array componentsJoinedByString:@"-"];
        NSLog(@"comString = %@",comString);

NSMutableString可变字符串类

NSMutableString继承NSString的
继承:如果一个类继承了另外一个类,它会拥有这个类的所以方法
           NSMutableString类拥有NSString这个类的所以方法   
创建对象
1.创建的就是空字符串
  NSMutableString *mstr = [NSMutableString alloc]init;
  NSMutableString *mstr = [[NSMutableString alloc]initWithUTF8String:"text"];
   NSLog(@"mstr=%@",mstr);
        
    }
    return 0;
}
2.复制(设置字符串)
复制(设置字符串)---努力拼搏
 相当于strcpy
        [mstr setString:@"努力拼搏"];
        NSLog(@"mstr=%@",mstr);
3.链接
 (附加)上一个字符串的后面加上:不是吗?
        [mstr appendString:@",不是吗"];
        NSLog(@"mstr=%@",mstr);
4.插入
        [mstr insertString:@"难道" atIndex:5];
        NSLog(@"mstr=%@",mstr);

5.删除
        定义删除范围
        NSRange range={7,1};
        [mstr deleteCharactersInRange:range];
        NSLog(@"mstr=%@",mstr);
        
6.替换
        NSMutableString *mstr2=[[NSMutableString alloc]initWithUTF8String:"睡觉容易,睡醒困难,且睡且珍惜"];
        [mstr replaceCharactersInRange: withString:]
        NSRange replaceRange={0,[mstr2 length]};
        [mstr2 replaceOccurrencesOfString:@"睡" withString:@"等" options:NSLiteralSearch range:replaceRange];
        NSLog(@"mstr2=%@",mstr2);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值