美文网首页
NSString字符串 - OC

NSString字符串 - OC

作者: 以太死多 | 来源:发表于2015-08-27 23:06 被阅读3696次

    创建字符串的4种方法

        NSString *s = @"这个是第一种";   //1.特殊用法
        
        NSString *s1 = [NSString new];
        s1 = @"这是第二种";
        NSLog(@"%@",s1);    //2.理论用法
        
        for (int i = 0; i<10; i++) {
            NSString *imgName = [NSString stringWithFormat:@"xxxxx%02d.jpg",i];
            NSLog(@"%@",imgName);   //3.格式化创建字条串
        }
    
        //4.用一个已经存在的字符串创建一个样的字符串
        NSString *s2 = [[NSString alloc]initWithString:s1];
        NSLog(@"s2 = %@",s2);
    

    NSString字符串长度计算(length方法)

    NSString *str = @"ican";   
    NSUInteger len = [str length];    
    NSLog(@"str length:%ld",len);   //一定是%ld,打印4
    

    NSString字符串:取出对应位置的字符

    unichar ch = [str characterAtIndex:0]    
    //取出字符串str下标为0的对应字符,返回unichar类型值
    

    NSString字符串:比较字符串大小

    • 无条件
      //compare 方法返回结果有3种:
      NSOrderedAscending(升序「-1」),
      NSOrderedSame「0」,
      NSOrderedDescending(降序「1」)
      NSString *str1 = @"abc";
      NSString *str2 = @"bcd";

        NSComparisonResult result = [str1 compare:str2];
        printf("%ld",result);    //打印结果为-1(升序)
      
    • 有条件(可以有多个条件)

    /*compare 常用的3个条件:
            NSCaseInsensitiveSearch:不区分大小写字符
            NSLiteralSearch:进行完全比较,区分大小写(默认)
            NSNumericSearch:比较字符串的字符个数,而不是字符值
         */
        NSString *str1 = @"abc";
        NSString *str2 = @"Abc";
        
        //可以添加多个比较条件
        NSComparisonResult result =
        [str1 compare:str2 options:NSCaseInsensitiveSearch|NSNumericSearch];
    
        printf("%ld",result);    //打印结果为0
    

    NSString字符串:判断字符串是否相等

    [str1 isEqualToString:str2]   //返回BOOL值
    

    NSString字符串前后缀检查

    • 前缀

       NSString *url = @"https://ios,itcast.cn";
        
        //检测一个字符串的前缀是否是http://或者https://开头
        //[str hasPrefix:@"要检测的内容"];
        if ([url hasPrefix:@"http://"]||[url hasPrefix:@"https://"]) {
            printf("这是一个网址");
        }else{
        
            printf("这不是一个网址");
        }
      
    • 后缀

        NSString *imgName = @"xxxxx.jpg";
        
        //检测一个字符串的后缀是否是.jpg
        //[str hasSuffix:@"要检测的内容"];
        if ([url hasSuffix:@".jpg"]) {
            printf("这是一个jpg图片");
        }else{
        
            printf("这不是一个jpg图片");
        }
      

    NSString字符串的查找

    • 查找某个字符串在另外一个字符串中首次出现的位置
      NSString *str1= @"slkioslkgilkdiosflgkhldsiosfndslfdsn";
      NSString *str2= @"ios";

        //查找2在1中首次出现的位置
        //range 结构体变量 NSRange 结构体别名
        //如果查找不到location返回NSNotFound,length返回0
        NSRange range = [str1 rangeOfString:str2];
        
        NSLog(@"%lu,%lu",range.location,range.length);
      

    把结构体转换成NSString类型

      NSLog(@"%@",NSStringFromRange(r4)); //r4为结构体变量
    

    字符串的截取

        -(NSString *)substringFromIndex:(NSUInteger)from;
         从**指定位置**from开始(包括指定位置的字符)到尾部
    
         -(NSString *)substringToIndex:(NSUInteger)to;
         从字符串的开头一直截取到**指定的位置**to,但不包括该位置的字符
    
         -(NSString *)substringWithRange:(NSRange)range;
         按照所给出的NSRange从字符串中截取字符串 
         如:[str substringWithRange:NSMakeRange(4,10)];//不清楚就看NSRange的概念和使用
    

    NSString字符串的替换

        -(NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *) replacement
        //用replacement替换target,返回替换后的字符串
    

    NSString和其他类型的转换

    NSString *str = @"1";
        int a = 19;
        
        //把字符串类型转换成其他类型
        int b = [str intValue];  //intValue,floatValue,doubleValue
        sum = a+b;
    

    NSString去除首尾空格

    [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];//返回去除后的字符串
    

    //其他参数:

    屏幕快照 2015-09-04 22.13.54.png
    • OC字符串和C字符串的互相转换
      char *s = "zhangsanfeng";
      printf("%s\n",s);

        //用C语言创建一个OC的字符串
        NSString *str = [NSString stringWithUTF8String:s];  //相反的用[str2 UTF8String]
        NSLog(@"str = %@",str);

    相关文章

      网友评论

          本文标题:NSString字符串 - OC

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