您的位置:首页 > 其它

OC_字符串 NSString 的比较重要的方法用法介绍

2015-07-20 20:28 537 查看
    //第一部分:不可变字符串:NSString

    

    //
字面量,

//       NSString *str =@"y玩anglin";

//       NSString *arr=@[@"1", @"2"];

    //1.
字符串长度

//    NSLog(@"%ld",str.length);

//   结果: 2015-07-20 17:32:27.374 OC练习[1596:97283] 7

    

    // 2.通过指定下标获取字符内容

    // @"%C"中大写的C可以输出汉字 c不可以

//    NSLog(@"%C", [str characterAtIndex:1]);

//   结果: 2015-07-20 17:37:56.737 OC练习[1620:98525]玩

    

    // 3.通过alloc和init创建一个空的字符串

//    NSString *str =[[NSString alloc] init];

    

    // 4.通过alloc和initWithSpring初始化方法来自定义一个对象
  /*

    NSString *str =[[NSString alloc] initWithString:@"山山来了"];

    NSLog(@"%@",str);

    // 结果 :2015-07-20 17:42:43.639 OC练习[1636:99535]山山来了

     */

    

    // 5.用便利构造器创建字符串对像

//    NSString *str =[NSString stringWithString:@"山山来了"];

//    NSLog(@"%@",str);

    //
结果:2015-07-20 17:47:52.783 OC练习[1654:100807]山山来了
   /*

      3-5

    创建字符串对象:可以用便利构造器的方法,也可以用正常方法,但系统更倾向于用字面量的方式完成对象的创建

    */

    

    // 6.substringFromIndex :从哪开始截取,到最后,包括下标位置

//    NSString *str =@"nihao,wodemingzijiao1";

//    NSLog(@"%@",[str substringFromIndex:5]);

   //
结果: 2015-07-20 17:56:28.408 OC练习[1662:102656] ,wodemingzijiao1

    

    // 7.substringToIndex :从开始截取到指定位置,不包括下标位置

//    NSLog(@"%@",[str substringToIndex:7]);

    //
结果 :2015-07-20 18:00:25.539 OC练习[1695:103793] nihao,w

    

    // 8.substringWithRange:NSMakeRange:输出范围字符串,NSRange
是一个结构体,提供了两个变量,一个是起始位置:location,第二个是长度

//    NSRange range ={3 , 7};

//    NSLog(@"%@",[str substringWithRange:range]);

//    //或者

//    NSLog(@"%@",[str substringWithRange:NSMakeRange(3, 7)]);

//    // 结果都是:2015-07-20 19:01:31.374 OC练习[1717:107047] ao,wode

    // 9.isEqualToString:判断两个字符串内容是否相同:BOOL类型

    //    NSString *str1 =@"ni hao";

    //    NSString *str2 =@"ni hao";

    //    NSLog(@"%d",[str1 isEqualToString:str2]);

    

    //比较两个字符串的地址是否相同

    // if(str1 == str2 )

    

    // 10.hasPrefix:判断是否有前缀 ,是BOOL类型,前缀是prefix内的内容则为真,否则为假

//    NSString *str =@"liushanshan";

//    NSString *prefix =@"liu";

//    NSLog(@"%d",[str hasPrefix:prefix]);

    //
结果:  2015-07-20 19:18:57.680 OC练习[1815:113912] 1

    

    // 11.hasSuffix
判断是否有后缀,是BOOL类型,前缀是suffix内的内容则为真,否则为假

//    NSString *suffix =@"shan";

//    NSLog(@"%d",[str hasSuffix:suffix]);

    //
结果:  2015-07-20 19:18:57.680 OC练习[1815:113912] 1

    

    // 12.integerValue :把字符串变成基本数据类型,但是遇到字母停止

//    NSString *strNum=@"123p5";

//    NSInteger num =[strNum integerValue];

//    NSLog(@"%ld",num);

    //
结果:2015-07-20 19:23:19.272 OC练习[1823:115089] 123

    // 13.stringWithFormat :可以把任意类型转化成字符串,可以进行拼接

//    CGFloat g=3.14;

//    NSInteger a =100;

//    NSString *str =[NSString stringWithFormat:@"%@, %ld ,%g, %@",@"不好",a, g, @"刘山山sdaJ" ];

//    NSLog(@"%@",str);

    //
结果 : 2015-07-20 19:29:43.092 OC练习[1844:116518]不好, 100 ,3.14,
刘山山sdaJ

    // 14.uppercaseString :所有都大写

    //    lowercaseString :所有全小写

    //    capitalizedString:首字母大写空格后大写,
其他全变小写

//    NSString *str= @"liuShan sHan";

//    NSLog(@"%@",str.uppercaseString);

    //
结果:2015-07-20 19:36:34.126 OC练习[1858:118186] LIUSHAN SHAN

//    NSLog(@"%@",str.lowercaseString);

    //
结果 :2015-07-20 19:36:34.126 OC练习[1858:118186] liushan shan

//    NSLog(@"%@",str.capitalizedString);

    //
结果 :2015-07-20 19:36:34.127 OC练习[1858:118186] Liushan Shan

    

    // 15.compare :比较两个字符串:对应只有三个结果,一个是ASC升序,结果是-1,一个是same相同的结果0,降序DESE,结果是1

//    NSString *str =@"buhao";

//    NSString *newStr = @"nihao";

//    NSLog(@"%ld",[str compare:newStr]);

    //
结果 :2015-07-20 19:39:43.387 OC练习[1866:119001] -1

    

    // 16.字符串的拼接:stringByAppendingString

//    NSString *str = @"liushanshan";

//    NSString *str1 =@"yanlin";

//    NSString *newStr =[str stringByAppendingString:str1];

//    NSLog(@"%@",newStr);

   //
结果: 2015-07-20 19:43:38.882 OC练习[1874:119958] liushanshanyanlin

    

    // 17.stringByReplacingOccurrencesOfString:替换

    //第一个参数 :原字符串的部分内容

    //第二个参数 :要替换的内容

//    NSString *str =@"意义没事喜欢玩游戏";

//    NSString *strNew =[str stringByReplacingOccurrencesOfString:@"意义" withString:@"流星雨"];

//    NSLog(@"%@",strNew);

    //
结果:2015-07-20 19:51:35.319 OC练习[1892:121856]流星雨没事喜欢玩游戏

    

  //第二部分

    // NSString:不可变字符串

    // NSMutableString:可变字符串,他是NSString的子类

    

    //使用字面量的方式创建的是不可变字符串,只能拿不可变的指针来接收

//        NSMutableArray *str =@"yanglin";

//        NSMutableArray *str = [[NSMutableString alloc] initWithString:@"wangwu"];

//        NSLog(@"%@",str);

    

    

    // 18.插入 insertString:插入内容,atIndex :插入位置下标

//        NSMutableString *str=[NSMutableString stringWithString:@"nihao,wo deming zi jiao yanglin"];

//        [str insertString:@"商帅" atIndex:3];

//        NSLog(@"%@", str);

     //
结果: 2015-07-20 19:57:42.854 OC练习[1911:123322] nih商帅ao,wo deming zi jiao yanglin

    

    // 19.
范围性替换 NSRange 是一个结构体,提供了两个变量,一个是起始位置:location,第二个是长度

//        NSRange range ={3,7};

//        [str replaceCharactersInRange:range withString:@"hao"];

//        NSLog(@"%@",str);

    //
结果 :2015-07-20 20:12:04.148 OC练习[1930:125103] nihhaoeming zi jiao yanglin

    

    // 20 .setString:全替换

//        [str setString:@"11"];

//        NSLog(@"%@",str);

    //
结果 :2015-07-20 20:12:54.101 OC练习[1938:125357] 11

    

    // 21 .appendString :拼接

//        [str appendString:@"11"];

//        NSLog(@"%@",str);

    //
结果: 2015-07-20 20:13:55.438 OC练习[1954:125627] nihhaoeming zi jiao yanglin11

    

    //可变字符串在方法上一般都是没有返回值的,都是对自己本身的内容进行修改,在访问的时候字符串已经发生了变化,但是不可变字符串会产生一个新的字符串,一般方法会返回NSString
*,

    

    
   /*

     练习

     给定一个图片的文件名,判断字符串中是否以"png"结尾,如果是就替换成"jpg",如果不是,就拼接".jpg"

     */

//    NSString *name =@"dsakldj.pn";

//    if ([name hasSuffix:@".png"]) {

//        NSString *strNew =[name stringByReplacingOccurrencesOfString:@".png" withString:@".jpg"];

//        NSLog(@"%@",strNew);

//    }else{

//        NSString *strNew =[name stringByAppendingString:@".jpg"];

//        NSLog(@"%@",strNew);

//    }

    //
结果:2015-07-20 20:20:51.608 OC练习[1981:127054] dsakldj.pn.jpg

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: