美文网首页
字符串(NSString)

字符串(NSString)

作者: 高念吖 | 来源:发表于2017-07-28 20:32 被阅读0次

    /*

    NSString(不可变)  && NSMutableString(可变)

    1.创建字符串

    2,字符串拼接,截取,比较计算长度,替换,前缀后缀,OC对象类型和C语言字符串类型的转化

    */

    ************************ 一,创建字符串 ****************************

      //1,最简单的创建方式

    NSString * str1 = @"hello world";//str1 指向常量区

    str1 = @"哈哈"; //str 重指向

    //2,废柴写法

    NSString *str2 = [[NSString alloc]initWithString:@"you are beautiful"];

    注意:str2 虽然alloc了但是仍然指向常量区

    //3.最牛逼,最正统的写法

    NSString *str3 = [[NSString alloc]initWithFormat:@"%@",str1];//实例化方法

    NSS *str4 = [NSString stringWithFormat:@"你好"];//类方法

    // str3 str4 都是指向堆区空间,format 方法的使用可以参考NSlog

    **********************二, 字符串长度***************************

    //length :计算字符串长度,返回值是NSIngter

    NSString *str5 = @"hgcd2324joijb";

    NSSIngter  len = [str5 length];

    NSLog(@"len = %lu",len);

    ***********************三,前缀,后缀***********************

    NSString *str6= [NSString stringWithFormat:@"http://www.baidu.com"];

    //判断此字符串是否连接的规则

    //关键字1  prefix  判断前缀 返回值为bool类型

    Bool  isPrefix = [str6 hasPrefix:@"http"];

    NSLog(@"isPrefix = %d",isPrefix);

    //关键字2 suffix 判断后缀返回值为bool

    BOOL issuffix = [str6 hasSuffix:".cn"];

    NSLog(isPrefix && isSuffix ?@"此链接是正确的":@"此链接不正确");

    *********************四,查找字符串的范围************************

    NSString *str7 = [[NSString alloc]initWithFormat:@"you are beautiful"];

    //判断str7 中是否含有are这个字符串?????

    //新的数据类型:NSRange结构体类型(俩个成员变量),location:字符串开始的位置 length:字符串的长度

    NSRange rang = [str7 rangeOfString:@"are"];

    NSLog("子串的起始位置location = %lu,子串的长度length = %lu",rang.location,rang.length);

    //一旦子串不存在母串中,输出location就会输出随机值

    NSLog(range.length == 0 ? @"查找成功" : @"查找失败");

    ********************五,获取字符串*********************

    //有三种方法     关键字sub  to  from

    NSString *str8 = @"nizhenbang";

    //1,给定字符串开始位置,截取到最后一个字符

    NSString *subStr1 = [str8 substringFromIndex:6];

    NSLog(@"subStr1 = %@",subStr1);

    //2.关键字 to 给定子串的结束位置,从第一个开始截取,到指定位置的前一个字符结束(不包含指定位置上的字符)

    NSString *substr2 = [str8 substringToIndex:6];

    NSLog(@"subStr2 = %@",substr2);

    //3.关键字 range 从任意位置截取任意长度的字符串

    //先创建range变量,指定要截取的范围

    NSRange range1 = [str8 rangeOfString:@"zhen"];

    NSString *subStr3 = [str8 substringWithRange:range1];

    NSLog(@"subStr3 = %@",subStr3);

    //第二种方式,不提前设置range变量  NSMakeRange用来设置range变量(注意非对象类型的不要带*)

    NSString *subStr4 = [str8 substringWithRange:NSMakeRange(3, 4)];

    *********************六字符串拼接***************************

    //关键字 APPending

    NSString *str9 = [NSString stringWithFormat:@"HaoRan"];

    //在str9后拼接 is a handsome boy

    NSString * newStr = [str9 stringByAppendingString:@"is handsome boy"];

    NSLog(@"new = %@",newStr);

    NSLog(@"str9 = %@",str9);

    ***********************七字符串替换****************************

    NSString *s1 = [NSString stringWithFormat:@"hello hello hi hi"];

    //1.用哪个指定字符串替换指定内容,比如将hello替换成haha

    NSString *newStr1 = [s1 stringByReplacingOccurrencesOfString:@"hello" withString:@"haha"];

    NSLog(@"newStr1 = %@",newStr1);

    //2.指定替换长度,比如讲第一个hi改成yes

    NSString *newStr2 = [s1 stringByReplacingCharactersInRange:NSMakeRange(15, 2) withString:@"yes"];

    NSLog(@"newStr2 = %@",newStr2);

    ****************8字符串的大小写转换**********************

    NSString *s2 = [NSString stringWithFormat:@"i love you"];

    //1.全部大写

    NSString *upperStr = [s2 uppercaseString];

    NSLog(@"%@",upperStr);

    //2,全部小写

    NSString *lowerStr = [upperStr lowercaseString];

    NSLog(@"%@",lowerStr);

    //首字母大写

    NSString *capitalStr = [lowerStr capitalizedString];

    NSLog(@"%@",capitalStr);

    ***************************字符串比较************************

    NSString *s3 = @"aa";

    NSString *s4 = @"bb";

    //比较关键字:compare

    NSComparisonResult result = [s3 compare:s4];

    /NSComparisonResult  本质就是NSInteger整形数据,被定义出来只是为了接受对象的比较结果,结果有三种类型-1(升序,前小后大) 0 (值相等) 1(降序 前大后小)

    NSLog(@"比较结果:%ld",result);

    **********字符串,数值转换*********************

    int a = 80;

    //基本类型 --> 字符串对象类型

    NSString *s6 = @"110";

    //1. C语言字符串

    const char *str = [s6 UTF8String];

    //C语言中所有数值类型都可转换

    float num1 = [s6 floatValue];

    int num2 = [s6 intValue];

    double num3 = [s6 doubleValue];

    ****************************************************************

    //NSString的子类NSMutableString

    //可变字符串:NSMutableString,对可变字符串做增删改操作,就会对可辨字符串直接进行操作

    NSMutableString *mStr1 = [NSMutableString stringWithFormat:@"hello"];

    //1,拼接字符串

    [mStr1 appendFormat:@"world"];

    NSLog(@"mStr1 = %@",mStr1);

    //2.删除

    [mStr1 deleteCharactersInRange:[mStr1 rangeOfString:@"world"]];

    //3.插入字符串

    [mStr1 insertString:@"girl" atIndex:5];

    NSLog(@"mStr1 = %@",mStr1);

    //可变字符串的初始化方式

    NSMutableString *mStr2 = [NSMutableString stringWithCapacity:100];

    //mStr = @"fkdsj323";可变字符串不能直接赋值(直接赋值的在常量区)

    [mStr2 appendString:@"你真帅"];

    NSLog(@"mStr2 = %@",mStr2);

    //前面插入帅哥 后面拼接 约吗

    [mStr2 insertString:@"帅哥" atIndex:0];

    [mStr2 appendString:@"约吗?"];

    NSLog(@"mStr2 = %@",mStr2);

    //替换

    NSRange range3 = [mStr2 rangeOfString:@"约吗"];

    [mStr2 replaceCharactersInRange: range3  withString:@"不约"];

    //重置字符串

    [mStr2 setString:@"美女 你真瘦"];

    NSLog(@"mStr = %@",mStr2);

    //注意 setstring:只是重新修改了指针所指想的空间的值,并没有发生指针重指向的问题//下面使用了便利构造器,内部有alloc ,重新开辟了空间

    mStr2 = [NSMutableString stringWithString:@"美女"]

    相关文章

      网友评论

          本文标题:字符串(NSString)

          本文链接:https://www.haomeiwen.com/subject/rdpflxtx.html