NSString的常用用法

#pragma mark 初始化方法

    NSString *str1 =@"A String!";

    NSLog(@"%@",str1);


    NSString *str2 = [[NSString allocinit];

    str2 = @"A String!!!!";

    NSLog(@"%@",str2);


    NSString * str3 = [[NSString allocinitWithFormat:@"我今年%i",24];

    NSLog(@"%@",str3);


    NSString * stringName =@"胡明涛";

    NSString * str4 = [[NSString allocinitWithFormat:@"我叫%@",stringName];

    NSLog(@"%@",str4);


    // C语言字符串格式转化为NSString格式

    const char * cString = "胡明涛";

    NSString * str5 = [[NSString allocinitWithCString:cString encoding:NSUTF8StringEncoding];

    NSLog(@"%@",str5);


    // -(const char*)UTF8String返回UTF8编码格式的字符串

    NSString * string =@"胡明涛";

    const char * cString1 = [string UTF8String];

    NSLog(@"%s",cString1);

   

    // 便利构造器方法(类方法+)

    NSString * str6 = [NSString stringWithFormat:@"胡明涛%i",24];

    NSLog(@"%@",str6);


#pragma mark 一些其他用法

    // 获取字符串的长度 

    NSString * str7 =@"胡明涛想要学好iOS";

    NSLog(@"%zi",[str7 length]);     // 10


    // 判断字符串是否以指定字符串开头

    NSString * str8 =@"好想玩召唤师,今天想要打DOTA";

    NSLog(@"%i",[str8 hasPrefix:@"好想"]);   // 1

    // 判断字符串是否以指定字符串结尾

    NSLog(@"%i",[str8 hasSuffix:@"DOTA"]);   // 1


    // 判断字符串是否包含指定字符串,返回位置和长度

    NSRange range = [@"123456"  rangeOfString:@"456"];

    NSLog(@"%@",NSStringFromRange(range));              // 返回{3,3},下标从0开始

    // 反向搜索

    NSRange range2 = [@"胡明涛今天玩召唤师卡尔得了MVP,召唤师32035rangeOfString:@"召唤师"                                                  options:NSBackwardsSearch];

    NSLog(@"%@",NSStringFromRange(range2));             // 返回{17,3}

    // 指定范围进行搜索

    NSRange range1 =NSMakeRange(0,20);

    range1 = [@"胡明涛今天玩召唤师卡尔得了MVP,32035rangeOfString:@"召唤师"                                                             options:NSBackwardsSearchrange:range1];

    NSLog(@"%@",NSStringFromRange(range1));        // 返回{6,3}


    // 替换字符串stringByReplacingOccurrencesOfString

    NSString * str11 =@"胡明涛今天玩召唤师卡尔得了MVP,召唤师32035";

    1.NSString * str12 = [str11 stringByReplacingOccurrencesOfString:@"胡明涛withString:@"HMT"];

    NSLog(str12,nil);  

    2.NSString * str121 = [str11stringByReplacingCharactersInRange:NSMakeRange(0,3)withString:@"HMT"];

    NSLog(@"%@",str121);

    3.NSString * str13 = [str11 stringByReplacingOccurrencesOfString:@"胡明涛withString:@"HMT"                                                                options:NSNumericSearch range:NSMakeRange(0,3)];

    NSLog(str13,nil);


    // 字符串的截取

    NSString *str9 = @"123456789";

    NSLog(@"%@",[str9 substringFromIndex:3]); // 从第3个位置开始截取,包括第3个数, 返回456789

    NSLog(@"%@",[str9 substringToIndex:6]);  // (注意)截取到第6个位置,但是不包括第6个数,  返回123456  

    NSLog(@"%@",[str9 substringWithRange:NSMakeRange(33)]);    //  456


     // 以某个标记来分割字符串

     NSString *str2 =@"a-b-c-d-5";

     NSArray *array = [str2 componentsSeparatedByString:@"-"];     

     NSLog(@"%@", array);    // 打印的是数组{a,b,c,d,5}

    

    // 字符串转为 int其他float,double同理(doubleValue floatValue longLongValue integerValue boolValue)

    NSString *str10 =@"8455";

    NSLog(@"%i",[str10 intValue]);

    // int类型转化为字符串类型

    int intString = 9999;

    NSString *intString = [NSStringstringWithFormat:@"%i",intString];  


#pragma mark 字符串的拼接

    NSString *str14 =@"我是召唤师";

    NSString *str15 =@"我是油条";

    NSString *result;

    //方法1

    result = [str14 stringByAppendingString:str15];

    NSLog(result,nil);

    //方法2

    result = [NSStringstringWithFormat:@"%@%@",str14, str15];

    NSLog(result,nil);

    //方法3

    result = [@""stringByAppendingFormat:@"%@%@", str14, str15];

    NSLog(result,nil);


#pragma mark 字符串的比较

   // 比较两个字符串内容是否相同  
   BOOL b =[str16 isEqualToString:str17];  

   

   // 比较两个字符串的内容大小 

   [str16 compare:(NSString *)str17];

   [str16 compare:(NSString *)str17 options:(NSStringCompareOptions)];

   [str16 compare:(NSString *)str17 options:(NSStringCompareOptions) range:(NSRange)];

   返回值类型:@ NSComparisonResult <------------------------------------------------------------------------

   typedef enum _NSComparisonResult {
               NSOrderedAscending = -1, // < 升序
               NSOrderedSame, // = 等于
               NSOrderedDescending // > 降序
               }
NSComparisonResult;

   @ 这里说一下 NSStringCompareOptions 这个参数是个枚举值 :

       enum{

                 NSCaseInsensitiveSearch = 1,  //不区分大小写比较

                 NSLiteralSearch = 2,   //区分大小写比较

                 NSBackwardsSearch = 4,   //从字符串末尾开始搜索

                 NSAnchoredSearch = 8, //搜索限制范围的字符串
                 NSNumbericSearch = 64//按照字符串里的数字为依据,算出顺序。例如 Foo2.txt < Foo7.txt < Foo25.txt

                 //以下定义高于 mac os 10.5 或者高于 iphone 2.0 可用
                 NSDiacriticInsensitiveSearch = 128,   //忽略 "-" 符号的比较
                 NSWidthInsensitiveSearch = 256,     //忽略字符串的长度,比较出结果
                 NSForcedOrderingSearch = 512//忽略不区分大小写比较的选项,并强制返回 NSOrderedAscending 或者                                                                          NSOrderedDescending
                 //以下定义高于 iphone 3.2 可用
                 NSRegularExpressionSearch = 1024//只能应用于 rangeOfString:...,                                                                              stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:... 方法。使用通用兼容的比较方                  法,如果设置此项,可以去掉 NSCaseInsensitiveSearch 和 NSAnchoredSearch
}


#pragma mark 字符串的大小写转换和首字母大写

   //全部转为大写  

   [str18 uppercaseString]    // NSString * str18 = @"HUMINGTAO"; 
     
   //全部转为小写  
   [str18 lowercaseString]     // NSString * str18 = @"humingtao"; 
     
   //首字母大写  
   [str18 capitalizedString])   // NSString * str18 = @"humingtao"; 


#pragma mark 从文件中读取文本

    //从文件中读取文本

    NSString *path =@"/Users/apple/Desktop/test.txt";

    //这个方法已经过期,不能解析中文

    // NSString *str1 = [NSString stringWithContentsOfFile:path];

    

    // 定义一个NSError变量

    NSError *error;

    // 指定字符串编码为UTF-8: NSUTF8StringEncoding

    NSString *str1 = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];

    if (error ==nil) { // 没有错误信息

        NSLog(@"读取文件成功:%@", str1);

    } else {

        NSLog(@"读取文件失败:%@", error);

    }

    

    NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/test.txt"];

    NSString *str2 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

    NSLog(@"%@", str2);

    

    NSURL *url2 = [NSURL URLWithString:@"http://www.baidu.com"];

    NSString *str3 = [NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil];

    NSLog(@"%@", str3);


#pragma mark 拓展名处理


    NSString *str = @"/User/HMT/test.txt";  

    NSLog(@"拓展名:%@", [str pathExtension]);

    // 删除拓展名

    NSLog(@"%@", [str stringByDeletingPathExtension]);                      //User/HMT/test

    // 添加拓展名

    NSLog(@"%@", [@"abc" stringByAppendingPathExtension:@"mp3"]);  // abc.mp3   自动加上了点号



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值