OC字符串类型方法总结

<span style="font-size:24px;">//*  1. 创建对象
        // 两种方式:
         //(1)便利构造器(+号方法)  stringWithFormat:
        NSString *str1 = [NSString stringWithFormat:@"iPhone%d", 5];
        NSLog(@"str1 = %@", str1);
         //(2)alloc+初始化方法    initWithFormat:
        NSString *str2 = [[NSString alloc] initWithFormat:@"iPhone%d", 4];
        NSLog(@"str2 = %@", str2);
        //(3)根据字符串初始化OC字符串对象,没人用这种方法
        NSString *str3 = @"lanou";//存储常量字符串@“lanou”的地址
        //2.求字符串的长度
        //length这个方法有返回值
        NSUInteger length = [str1 length];
        NSLog(@"length = %lu", length);
 //3 获取字符串中的某个字符
        characterAtIndex有返回值,不可越界
        reason:问题产生的原因,nscfstring == nsstring, 又是一个减号方法,所以问题产生的原因是:让一个nsstring类型的对象,调用characterAtIndex:方法时,给丁的字符串下标超出了范围,即下标越界
        //解决方案:将数组下标修改范围之内的数即可
        unichar charac = [str1 characterAtIndex:4];
        NSLog(@"%c", charac);
//4.判断是否以指定的字符串开头或结尾,返回值为bool类型
         //例如:判断一个字符串是否以http开头,是否以.com结束
        NSString *str4 = [[NSString alloc] initWithFormat:@"http:baidu.com"];
        判断是否以http开头  hasPrefix方法
        BOOL isPrefix = [str4 hasPrefix:@"http1"];
        NSLog(@"isPrefix = %d", isPrefix);
        //判断是否以.com结束  hasSuffix方法
        BOOL isSuffix = [str4 hasSuffix:@".com"];
        NSLog(@"isSuffix = %d", isSuffix);
//5.查找指定字符串的范围   rangeOfString:
        NSRange range = [str4 rangeOfString:@"htt"];//NSRange是一个结构体类型,range是一个结构体变量,两个成员,返回值为长整型
        if (range.length == 0) {
            NSLog(@"没有找到相应的字符串");
        } else {
            //NSLog(@"location:%lu, length:%lu", range.location, range.length);//返回值为长整型
            //将nssrange类型的结构体变量转变为字符串对象  NSStringFromRange方法
            NSLog(@"%@", NSStringFromRange(range));
            
        }
 //6.字符串截取(获取字符串)
         NSString *str5 = [NSString stringWithFormat:@"lanouishhg"];
        //(1)获取给定下标之后的字符串,包含指定下标对应的字符(获取的过程是拷贝的过程,要另外开辟一块堆区空间,操作的是拷贝的副本,拷贝的和原字符串虽然一样,但是地址不一样),会产生另外一个对象;
       //获取hg
        NSString *subString1 = [str5 substringFromIndex:8];//subString1是一个对象
        NSLog(@"%@", subString1);
        //(2)获取给定下标之前的子串,从下标为0开始,但是不包括指定下标对应的字符
        //获取lan
        NSString *subString2 = [str5 substringToIndex:3];
        NSLog(@"%@", subString2);
        //获取指定范围内的子串。
        //获取is             NSMakeRange(5, 2)
        NSString *subString3 = [str5 substringWithRange:NSMakeRange(5, 2)];
        NSLog(@"%@", subString3);
//7.字符串拼接
        NSString * str1 = [NSString stringWithFormat:@"lanou"];
        //lanou后拼接henan   stringByAppendingString:只可以拼接字符串,不可以拼接格式串
        NSString *newStr1 = [str1 stringByAppendingString:@"henan"];
        NSLog(@"%@",newStr1);
        //lanou后拼接henan9ban  stringByAppendingFormat可以拼接格式串
        NSString *newStr2 = [str1 stringByAppendingFormat:@"%@", newStr1];
        NSLog(@"%@", newStr2);
 //8.替换字符串
        NSString *str2 = [NSString stringWithFormat:@"lanouidjkgjfjououououou"];
        //(1)将ou替换成niubi    stringByReplacingOccurrencesOfString:后面的替换前面的
        NSString *str21 = [str2 stringByReplacingOccurrencesOfString:@"ou" withString:@"niubi"];
        NSLog(@"%@", str21);
        //只将第一个ou替换成niubi   NSMakeRange(3, 2)这个方法可以给定一个范围
        NSString *str22 = [str2 stringByReplacingCharactersInRange:NSMakeRange(3, 2) withString:@"niubi"];
        NSLog(@"%@", str22);
//9,字符串比较(升序或降序)(重点)
        NSComparisonResult result = [@"1111" compare:@"2222"];
        NSLog(@"%ld", result);
 //10.字符串和数值类型比较
        //(1)@"123"将字符串转化为整数123
        //从第一个字符为空格,如果在遇到空格之外的字符时,将前面的空格忽略掉,继续往下找,读取数字,直到遇到非数字时结束
        int value = [@"  123a" intValue];
        NSLog(@"%d", value);
        //(2)将数字转为字符串对象
        NSString *str = [NSString stringWithFormat:@"%d",2];
        NSLog(@"%@",str);
//11. 大小写转换
        //(1)将@"lan OU"全部转为大写
        NSString *upperString = [@"lanou OU" uppercaseString];
        NSLog(@"%@", upperString);
        //(2)将@"lan OU"全部转为小写
        NSString *lowerString = [@"lanou OU" lowercaseString];
        NSLog(@"%@", lowerString);
        //(3)将@"lan OU"每个单词的首字母大写
        NSString *capital = [@"lanou OU" capitalizedString];
        NSLog(@"%@", capital);
NSMutableString *str = [NSMutableString stringWithFormat:@"lanouhenan"];
        //对于可变字符串的增删改方法,都是在原字符串基础上进行修改,所以之后原字符串的内容发生变化,所以无需返回值
        //1,在原字符串str基础上拼接frank
        [str appendFormat:@"Frank"];
        NSLog(@"%@", str);
        //2.在字符串str基础上拼接frank
        [str appendFormat:@"%@", @"Frank"];
        NSLog(@"%@", str);
        //3.删除字符串,在原字符串基础上删除henan
        [str deleteCharactersInRange:NSMakeRange(5, 5)];
        NSLog(@"%@", str);
        //4,插入字符串,在原字符串基础上插入lanou
        [str insertString:@"lanou" atIndex:0];
        NSLog(@"%@", str);
        //5.替换字符串,在原字符串基础上将第一个frank替换成duck
        [str replaceCharactersInRange:NSMakeRange(10, 5) withString:@"Duck"];
        NSLog(@"%@", str);
</span>
</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值