oc之nsstring

1.NSString 初始化对象方法:

1.initWithString

eg: NSString *str1 = [[NSString alloc] initWithString:@"我要吃"];

  2.initWithFormat

2.1初始化赋值

eg:NSString *str2 = [[NSString alloc] initWithFormat:@"%@",@"我要吃大鱼大肉"];

2.2字符串拼接

eg: int num = 100;

        NSString *str100 = [[NSString alloc] initWithFormat:@"%d",num];

NSString *str101 = @"这个东西价格是";

         NSString *str102 = [[NSString alloc] initWithFormat:@"%@ %d",str101,100];//拼接。

         NSLog(@"str100:%@  str102:%@",str100,str102);//str100:100  str102:这个东西价格是 100

3.initWithCString

eg:NSString *str3 = [[NSString alloc] initWithCString:"没钱梅西" encoding:NSUTF8StringEncoding];


注:字符串拼接之initWithFormat:拼接随便,位置内容都随意,拼好的字符串要有字符串变量来接收。

2.        另外一种字符串拼接方法:stringByAppendingString

eg: NSString *str1 = @"我是";

        NSString *catStr1 =  [str1 stringByAppendingString:@"99”];//我是99

//前面是被添加的,参数是要添加的,填好了以后就是 str1@“99”

//这个拼法,拼完后str1不变,因为str1为不可变量,需要用新变量catStr1来接收。

  eg:NSString *str1 = @"我是";

        NSString *str2 = @"一个";

        NSString *str3 = @"";

        NSString *catStr123 = [str1 stringByAppendingString:str2];//一次只可拼接一个。

        NSString *catStr456 = [catStr123 stringByAppendingString:str3];

        

        NSLog(@"%@",catStr456);//我是一个人

3.NSString初始化类方法

1.stringWithString

eg: NSString *str1 = @"我是";

        NSString *str2 = [NSString stringWithString:str1];

2.stringWithFormat

eg:  NSString *str4 = [NSString stringWithFormat:@"%d%@%@",1,str2,str3 

3.stringWithCString

      eg:NSString *str3 = [NSString stringWithCString:"中国人" encoding:NSUTF8StringEncoding];

 NSLog(@"%@ %@ %@",str2,str3,str4);//我是 中国人 1我是中国人


4.算字符串

NSString *str20 = @"今天天气不错";

int strLength = [str20 length]; NSLog(@"%d",strLength);//OC字符串中没有\0,所以长度算出来也没多1.

        

5. 比较字符串(是否相等布尔类型)isEqualToString


   NSString *comStr1 = @"i am man";

   NSString *comStr2 = @"I am man";

   BOOL isSame = [comStr1 isEqualToString:comStr2];//两个字符串比较,前后顺序不影响。

        NSLog(@"%d",isSame);

6. 字符串比较大小

        NSComparisonResult reuult = [comStr1 compare:comStr2];

        NSLog(@"%ld",reuult);//返回结果为:1comStr1大于comStr2),0comStr1 等于comStr2),-1comStr1 小于comStr2);

7. 不区分大小写比较

       NSComparisonResult result1 =  [comStr1 compare:comStr2 options:NSCaseInsensitiveSearch];//不区分大小写

        NSLog(@"%ld",result1);//结果同上

8. 大小写转换

        NSString *preStr =  @"ABCDEFG";

       8.1 //大写转小写

        NSString *lowerStr = [preStr lowercaseString];

        NSLog(@"%@ %@",preStr,lowerStr);//ABCDEFG abcdefg


        //[preStr lowercaseString];执行这段后preStr没有变,以为他是不可变字符串,必须要新建一个字符换来接她,才变化了。

        8.2//小写转大写。

        NSString *upperStr = [lowerStr uppercaseString];

        NSLog(@"%@ %@",lowerStr,upperStr);//abcdefg ABCDEFG

        

        8.3//首字母大写

        NSString *capStr = [lowerStr capitalizedString];

        NSLog(@"%@",capStr);//Abcdefg


9.字符查找 characterAtIndex

int index = 1;

        NSString *oneStr = @"here is 1417";

        if(index<[oneStr length])

        {

            char HEREcHAR = [oneStr characterAtIndex:2];

            NSLog(@"%c",HEREcHAR);//打印一个字符用%c,打印OC字符时用%C

            NSLog(@"%C",[oneStr characterAtIndex:index]);

        }

10.字符串查找   rangeOfString(可以正向查找,反向查找)


//可以得到一个被查找字符串的{位置(location,下标)、长度(length}这样的结构体。

        NSString *waitingForSearchStr = @"abcdefghijklmn";

        NSString *searchingStr = @"fgh";

        //方法名是rangeOfString,由被查找的字符串来调用这个方法,参数是想要查找的内容,结果是一个结构体(所以不用加*,对象才加*NSRange{location,length}

        NSRange range = [waitingForSearchStr rangeOfString:searchingStr];

        NSLog(@"%lu,%lu",range.location,range.length);

        if(range.location== NSNotFound)

        {

         //写没找到的逻辑

            NSLog(@"没有");

        }else{

        //写找到了要干的事儿。

            NSLog(@"");

        }

        //用这个NSRange找一个字符串的时候,他只找一个,找到了就停。

        //从后向前找

        NSString *strTemp1 = @"生日照香炉生紫烟";

        NSString *strTemp2 = @"";

//-------------------------------------------------------------------------------------------------       

 NSLog(@"正:%lu",[strTemp1 rangeOfString:strTemp2].location);//

        NSLog(@"反:%lu",[strTemp1 rangeOfString:strTemp2 options:NSBackwardsSearch].location);//反指的是从后往前找,但下标还是字对应的下标。

 //------------------------------------ ------------------------------------------------------------      

        NSString *strTemp3 = @"abcdefg";

        NSString *strTemp4 = @"cd";

        if(range.location==NSNotFound)

        {

            NSLog(@"没找到");

        }else

        

        {

            NSLog(@"找到了");

        }

        NSLog(@"%lu",[strTemp3 rangeOfString:strTemp4].location);

    }

11.前后缀比较hasPrefix/ hasSuffix

返回值为布尔类型的。

//前缀,必须在开头

    NSString *pre = @"www.baidu.com";

    BOOL isHasWWW = [pre hasPrefix:@"www"];//返回一个布尔值,有威为真,没有为假。

    if(isHasWWW)

    {

        NSLog(@"%d",isHasWWW);//1为真

    }else{

        NSLog(@"没有");

    }

    

    //后缀,必须在后面

    NSString *book = @".pdf红楼梦.pdf";

    NSString *sufStr = @".pdf";

    BOOL isSufStr = [book hasSuffix:sufStr];

    NSLog(@"%d",isSufStr);

12.截取字符串

12.1 substringToIndex

//index0开始截起,截到某一个下标为止

eg: NSString *wantToBeSubStr = @"起来,不愿做努力的人们,把我们的血肉主城我们新的长城";

          NSString *fromBeginSubEndStr = [wantToBeSubStr substringToIndex:3];

          NSLog(@"从前面切好的字符串是: %@",fromBeginSubEndStr);//(起来,)不包括index


12.2 substringFromIndex

//从某个index开始截起,一直截到字符串最后一位。

NSString *fromIndexStr = [wantToBeSubStr substringFromIndex:18];//包括index

    NSLog(@"%@",fromIndexStr);//主城我们新的长城

12.3 substringWithRange(切一段)

//先找到这一段是否在字符串中。

NSRange range = [wantToBeSubStr rangeOfString:@"把我们的血肉"];

//然后切开

NSString *rangeSubEndStr = [wantToBeSubStr substringWithRange:range];

NSLog(@"%@",rangeSubEndStr);// 把我们的血肉

13.可变对象字符串  NSMutableString

//可变的对象,尽量不要直接指向另外一个内存,而是为自己申请一个内存,再添加内容。

        

       1.使用alloc方法,初始化时,一般申请一块内存。

        NSMutableString  *muStr =[[NSMutableString alloc] initWithCapacity:0];//为这个可变字符串申请一个内存。

        2.使用类方法初始化,依然只为其申请内存。

        NSMutableString *muStr1 = [NSMutableString stringWithCapacity:0];

3.增值   appendString

3.1 [muStr1 appendString:@"我是"];

        //如果调用了可变字符串的方法,那么这些可变字符串对象的本身的值发生改变。所以不需要在前面做一个新的字符串对象来接。

         3.2  [muStr1 appendFormat:@"%d",11];

        NSLog(@"%@",muStr1);// 我是11

4.两个参数增值   insertString

//有两个参数,第一个是要添加的字符串,第二个是将要添加字符串的下标。

        [muStr1 insertString:@"一个" atIndex:2];

        //向任意位置添加字符串

        NSLog(@"%@",muStr1);//我是第一个11

        [muStr1 appendFormat:@"岁的小孩"];

         NSLog(@"%@",muStr1);

        [muStr1 insertString:@"不到" atIndex:4];

         NSLog(@"%@",muStr1);

5.删值 deleteCharactersInRange


//方法名deleteCharactersInRange,参数是一个NSRange的结构体,由locationlength组成

        [muStr1 deleteCharactersInRange:NSMakeRange(2, 2)];//相当于将“一个”删除。

         NSLog(@"%@",muStr1);

        [muStr1 deleteCharactersInRange:NSMakeRange(2,6)];

        NSLog(@"%@",muStr1);


注:NSMakeRange(2,6);算是切值,将下标为2往后长度为6的段落字符串截取出来。


6.改值replaceCharactersInRange

//两个参数,第一个为NSRange的结构体,表示要改内容的位置和长度,第二个是改成的内容。

        [muStr1 replaceCharactersInRange:NSMakeRange(2,1) withString:@""];

        NSLog(@"%@",muStr1);//我是破孩

        [muStr1 replaceCharactersInRange:NSMakeRange(2, 2) withString:@"邋遢大王"];

        NSLog(@"%@",muStr1);// 我是邋遢大王



注:改值方法   setString

[muStr1 setString:@"123"];

        NSLog(@"%@",muStr1);//123

        

        [muStr1 setString:@"over"];

        NSLog(@"%@",muStr1);//over


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值