zoukankan      html  css  js  c++  java
  • oc中的字符串 NSString

    该博客是自己的学习笔记,写的比较随意。。。

    1.创建字符串的方法:

     1 //1用NSString 直接创建
     2     NSString *str=@"hello world.";
     3     //2用一个已存在的字符串来创建另一个字符串     传的参是一个字符串的地址
     4     NSString *str2=[[NSString alloc] initWithString:str];
     5     =NSString *str2=[[NSString alloc] initWithString:@"hello world."];
     6     //3 传入一个c语言字符串的首字符地址
     7     //用C语言的字符串创建一个oc字符串对象
     8     NSString *str3=[[NSString alloc] initWithUTF8String:"hello world."];
     9     //4使用格式符,拼接成字符串。下面的结果为hello 5 A.
    10     NSString *str4=[[NSString alloc] initWithFormat:@"hello %d %c.",5,'A'];
    11 
    12     //打印
    13     NSLog(@"%@",str);
    14     NSLog(@"%@",str2);
    15     NSLog(@"%@",str3);
    16     NSLog(@"%@",str4);
    17     //通过alloc产生的要进行释放
    18     [str2 release];
    19     [str3 release];
    20     [str4 release];
    View Code

    对应的创建临时字符串的方法:

    1 //三种创建临时字符串的方法
    2      //使用stringWith函数,都是自动释放的
    3      //1将c的字符串转换成oc字符串对象
    4 
    5     NSString *str5=[NSString stringWithUTF8String:"hello world"];
    6     //2使用格式符
    7     NSString *str6=[NSString stringWithFormat:@"%d %@ %c",1,@"hello",'W'];
    8    //3使用一个字符串创建另一个字符串
    9    NSString *str7=[NSString stringWithString:str];
    View Code

    2.字符串的操作:

     1 //字符串的比较 1.用isEqualToString是字符串对象自带的方法返回值是布尔变量
     2         BOOL et=[str isEqualToString:str2];
     3         //2.用compare 返回值是NSComparisonResult 一个枚举类型{-1,0,1}
     4         NSComparisonResult ret=[str compare:str2];
     5         if(ret==NSOrderedAscending){
     6             NSLog(@"str<str2");
     7         }else if(ret==NSOrderedSame){
     8             NSLog(@"str=str2");
     9         }else if(ret==NSOrderedDescending){
    10             MSLog(@"str>str2");
    11         }
    12         //声明一个字符串对象(用NSString类)
    13         NSString *str=@"I am a so bad man.";
    14         NSString *subStr=@"so";
    15         //求子串(NSRange函数)返回值是NSRane结构类体型
    16         //他里面有两长整数 location,length
    17         NSRange range=[str rangeOfSting:subStr];
    18         NSLog(@"location:%lu length:%lu",range.location,range.length);
    19 
    20         //提取字符串substringToIndex
    21         NSString *str=@"0123456789";
    22         //从str中从头提取6个字符串,生成新的字符串,返回字符串的地址
    23         NSString *str=[str substringToIndex:6];
    24         NSLog[@"%@",str];
    25         NSLog[@"%@",str2];
    26         //结果:0123456789
    27         //012345
    28         //从str中提取从第6个字符(包括第6个)到最后一个字符,生成新字符串,返回字符串地址
    29         NSString *str3=[str substringFromIndex:6];
    30         NSLog(@"%@",str3);
    31         //结果:6789
    32 
    33         //根据指定位置提取字符串
    34         NSRange range={3,4};//从第3个字符开始提取4个
    35         NSString *str4=[str substingWithRange:range];
    36         //上面两句可以用下面的代替
    37         NSString *str4=[str substringWithRange:NSMakeRange(3,4)];
    38         NSLog(@"%@",str4);
    39         //结果:3456
    View Code

    3.深入学习:

     1 可变字符串:它继承字符串
     2 NSMutableString 在原来的基础上加了增删改查四个方法
     3 
     4 //创建
     5 NSMutableString *str=[[NSMutableString alloc] initWithString:@"hello"];
     6 //还可以这样做:
     7 NSMutableString *str=[[NSMutableString alloc] init];
     8 [str setString:@"hello"];
     9 //再次设置会替换原来的字符串
    10 [str setString:@"world"];
    11 //可变字符串的追加appendString
    12 [str appendString:@"123"];
    13 //追加格式符appendFormat
    14 [str appengFormat:@"%c",'D'];
    15 //插入 insertString
    16 [str insertString:@"XXXX" atIndex:4];//在第4个位置上插入
    17 [str insertString:[NSString stringWithFormat:@"%d",-54] atIndex:7];
    18 
    19 //结果:worlxxx-54xd123D
    20 
    21 
    22 //删 从第3个字符开始删除5个字符
    23 [str deleteCharactersInRange:NSMakeRange(3,5)];
    24 
    25 //结果:wor54xd123D
    26 
    27 //改 replace
    28 [str replaceCharactersInRange:NSMakeRange(3,2) withString:@"Qrrrrrr"];
    29 //结果:worQrrrrrrxd123D
    View Code
  • 相关阅读:
    Android 开发 深入理解Handler、Looper、Messagequeue 转载
    Android 开发 Handler的基本使用
    Java 学习 注解
    Android 开发 AlarmManager 定时器
    Android 开发 框架系列 百度语音合成
    Android 开发 框架系列 Google的ORM框架 Room
    Android 开发 VectorDrawable 矢量图 (三)矢量图动画
    Android 开发 VectorDrawable 矢量图 (二)了解矢量图属性与绘制
    Android 开发 VectorDrawable 矢量图 (一)了解Android矢量图与获取矢量图
    Android 开发 知晓各种id信息 获取线程ID、activityID、内核ID
  • 原文地址:https://www.cnblogs.com/sdutmyj/p/4554967.html
Copyright © 2011-2022 走看看