NSString的简单介绍及经常使用方法总结

1.NSString的介绍编程

  • NSString自己是一个字符串类,继承于NSObject,文字内容通常都用NSString来表示。
  • 一个NSString对象就表明一个字符串。

2.NSString的初始化api

  •  直接建立字符串:
  • NSString *str = @"我是一个字符串";

    这是一个常量字符串,值不能修改。数组

  • 格式化(拼接)字符串(堆区):StringWithFormat

           第一种方式:框架

  • NSString *str1 = [NSString StringWithFormat:@"这是一个拼接字符串"];

           第二种方式:this

  • int age = 20;
    NSString *str1 = @"我今年";
    NSString *str2 = @"岁了";
    NSString *str2 = [NSString stringWithFormat:@"%@%d%@",str1,age,str2];

            能够拼接接多个参数spa

  • 转化C语言字符串:stringWithUTF8String
    char *s = "c字符串转换";
    NSString *str = [NSString stringWithUTF8String:s];
    NSLog(@"%@",str);

    直接printf("%s",s)是不支持的。code

3.NSString字符串的比较orm

  • 两个字符串的内容相同就返回YES, 不然返回NO :isEqualToString对象

    NSString *str1 = @"this is b string";        
    NSString *str2 = @"this is a string";
    BOOL isSame = [str1 isEqualToString:str2];        
    NSLog(@"isSame - %d",isSame);

     

  • 比较两个字符串内容的大小 :compare继承

    NSString *str1 = @"this is b string";        
    NSString *str2 = @"this is a string";
    NSLog(@"compare - %ld",(long)[str1 compare:str2]);

    字符串的比较是依次比较每一个字符的ASCII值,只要有一个字符比较出结果就中止比较;返回(NSComparisonResult)做为比较结果 ;NSComparisonResult是一个枚举,只有三个值,若是左边<右边,返回-1;若是左边>右边,返回1;若是相等,返回0。

  • 字符串忽略大小写的比较:caseInsensitiveCompare

    NSString *str1 = @"this is b string";
    NSString *str2 = @"this is B string";
    NSLog(@"compare - %ld",(long)[str1 caseInsensitiveCompare:str2]);

    因为忽略大小写,因此返回值为0,str1和str2相同。

4.NSString大小写处理

  • 小写变大写:uppercaseString
    NSString *str1 = @"abcdefgh";
    NSString *str2 = [str1 uppercaseString];

    uppercaseString - 是把小写变大写,返回的是一个新的字符串

  • 大写变小写:lowercaseString

    NSString *str1 = @"ABCDEFG";
    NSString *str2 = [str1 lowercaseString];

    capitalizedString - 是把大写变小写,返回的也是一个新的字符串

  • 首字母变大写,其余字母变小写:capitalizedString

    NSString *str1 = @"thisIFSsbstring";
    NSString *str2 = [str1 capitalizedString];
    NSLog(@"%@",str2);

    输出结果:Thisifssbstring。返回的一样是一个新的字符串。

5.NSString先后缀检查及搜索 

  • 检查前缀是不是XXX:hasPrefix
    NSString *str1 = @"www.baidu.com";
    BOOL isPre = [str1 hasPrefix:@"www.baidu"];        
    NSLog(@"is - %d",isPre);

    检查前缀是不是www.baidu,若是是,返回1,不然返回0

  • 检查后缀是不是XXX:hasSuffix

    NSString *str1 = @"www.baidu.com";
    BOOL isSuf = [str1 hasSuffix:@".com"];        
    NSLog(@"is - %d",isSuf);

    检查后缀是不是.com,若是是,返回1,不然返回0

  • 字符串查找:rangeOfString
    NSString *str = @"www.baidu.com";
    NSRange rang = [str1 rangeOfString:@"com"];
    NSLog(@"loc - %ld,len - %ld",rang2.location,rang2.length);

    rangeOfString - 查找具体字符串的位置和长度

6.字符串的截取和替换 

  •  从指定位置开始截取到尾部:substringFromIndex
    NSString *str1 = @"我在编程道路上匍匐前行";
    NSString *str2 = [str1 substringFromIndex:4];
    NSLog(@"str2 - %@",str2);

    输出结果:道路上匍匐前行

  • 从首位截取到指定位置:substringToIndex

    NSString *str1 = @"我在编程道路上匍匐前行";
    NSString *str2 = [str1 substringToIndex:7];
    NSLog(@"str2 - %@",str2);

    输出结果:我在编程道路上

  • 按照所给的NSRange从字符串中截取:substringWithRange

    NSString *str1 = @"我在编程道路上匍匐前进";
    //建立NSRange
    NSRange rang = NSMakeRange(4, 5);
    //4表示位置,5表示长度
    NSString *str2 = [str1 substringWithRange:rang];
    NSLog(@"str2 - %@",str2);

    NSRange是Foundation框架中比较经常使用的结构体, 定义了两个属性location(位置)和length(长度);NSRange用来表示事物的一个范围,一般是字符串里的字符范围或者数组 里的元素范围。

  • NSString字符串的替换:stringByReplacingOccurrencesOfString

    NSString *str1 = @"www.baidu.com";
    NSString *str2 = [str4 stringByReplacingOccurrencesOfString:@"baidu" withString:@"SIS"];
    NSLog(@"str2 - %@",str2);

    输出结果:www.SIS.com

7.NSString的其余用法 

  • 获取字符串长度:length
    NSString *str = @"前进前进前进112412";        
    NSLog(@"str - %lu",(unsigned long)[str length]);

    输出结果:12

  • 得到具体位置的字符:characterAtIndex

    str = @"0123asd";
    char a = [str characterAtIndex:0];  
    //经过字符遍历整个字符串      
    for (int i = 0; i < [str length]; i++) {
    NSLog(@"i - %c",[str characterAtIndex:i]);
    }

    若是字符串中有汉字,得到的字符是乱码

  • 字符串和其余数据类型的转换:

    //字符串类型转int型
    NSString *str2 = @"233";
    NSLog(@"str2 - int - %d",str2.intValue);
    //字符串类型转double型
    NSString *str2 = @"233.342423";
    NSLog(@"str2 - int - %lf",str2.doubleValue);
    //字符串类型转double型
    NSString *str2 = @"233.342423";
    NSLog(@"str2 - int - %f",str2.floatValue);
相关文章
相关标签/搜索