• 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
  • 相关阅读:
    点名
    2017.6.11 NOIP模拟赛
    HEOI 2012 旅行问题
    【1】【JUC】JDK1.8源码分析之ReentrantLock
    Git撤销&回滚操作
    源码分析之CountDownLatch
    【1】AQS详解
    循环屏障CyclicBarrier以及和CountDownLatch的区别
    【JUC】CountDownLatch
    匿名内部类中使用的外部局部变量为什么只能是final变量
  • 原文地址:https://www.cnblogs.com/sdutmyj/p/4554967.html
Copyright © 2020-2023  润新知