【iOS 基础】NSString 类

在IOS的开发过程中,NSString绝对是一个经常使用的类, 最近一直在对字符串进行各种操作, 索性停下来总结一下这个基础类,各位看官请轻喷,有问题大家一起互动。


OBjective-C 中处理字符串的类有两个:NSString 和 NSMutableString。

NSString 为不可变字符串,内容和长度不能进行动态更改,NSMutableString 为可变字符串,创建之后可以动态的改变该字符串的内容和长度。


1,字符串的创建

      NSString *str =@"字面量创建字符串";

   NSString *str1 = [NSStringnew];

   NSString *str2 = [[NSStringalloc] initWithString:@"等同于1"];

   NSString *str3 = [NSStringstringWithFormat:@"%@",@"字符串"];


    

2,   字符串的追加

    在字符串的末尾追加:

          NSString *temp =@"临时字符串";

     NSString *str = [tempstringByAppendingString:temp];

  在指定的范围追加:

     NSString *str1 =@"奋斗中,奋斗中";

     NSRange rang = {4,0};   // 4代表从哪个索引开始插入, 0代表覆盖几个字符

     NSString *str2 = [str1stringByReplacingCharactersInRange:rang withString:@"我在"];

  格式化字符串:

   int num =666;

    float height = 8.8;

    char* charstr = "rose";

    NSString *str3 = [NSStringstringWithFormat:@"他买了%d %s,每朵都有%.f厘米高",num,charstr,height];


    

3,  字符串的截取

   NSString *str =@"你是我的小呀小苹果";

    // 字符串长度

    NSUInteger length = [strlength];

    

   // 根据索引获得单个字符

    unichar cstr = [strcharacterAtIndex:3];

    

   // 从指定的索引位置开始截取字符串到末尾

    NSString *str1 = [strsubstringFromIndex:3];

    

   // 从字符串首位开始截取到指定索引位置

    NSString *str2 = [strsubstringToIndex:4];

    

   // 截取字符串从某个位置开始到某个位置结束

    NSRange rang = {2,3};

    NSString *str3 = [strsubstringWithRange:rang];

    

   // 获得一个字符串在字符串中的索引位置,长度

    NSRange charrang = [strrangeOfString:str3];

   

4,   字符串的判断

   NSString *str =@"字符串比较";

   NSString *str1 = @"字符串";

   NSString *str2 = @"字符串";

    // 判断是否为空

   if (str == nil || str1.length ==0)

    {

       NSLog(@"字符串为空");

    }

   else

    {

       NSLog(@"字符串不为空");

    }

    

   //判断是否相等比较

   // 判断内存地址是否相同

   if (str1 == str2)

    {

       NSLog(@"str1: %p, str2: %p",str1,str2);

    }

   // 判断两个字符串是否相等

   if ([str1 isEqualToString:str2])

    {

       NSLog(@"先判断字符串的地址是否相同,相同了,再判断字符串是否相同");

    }

    // ASICC 值比较

   NSComparisonResult result = [str1 compare:str2];

   switch (result)

    {

        caseNSOrderedAscending:

           NSLog(@"str1 小于 str2");

           break;

            

        caseNSOrderedSame:

           NSLog(@"str1 等于 str2");

           break;

            

        caseNSOrderedDescending:

           NSLog(@"str1 大于 str2");

           break;

            

       default:

           break;

    }

   // 字符串以开头结尾比较

   if ([str1 hasPrefix:@"字符"])

    {

        NSLog(@"字符串str1是以'字符'开头的");

    }

   if ([str hasSuffix:@"比较"])

    {

        NSLog(@"字符串str是以'比较'结尾的");

    }

    

    NSString *str3 =@"This is a String";

    NSString *str4 =@"this is a string";

    

   // 不区分大小写比较

  NSComparisonResult unResult = [str3 caseInsensitiveCompare:str4];

   switch (unResult)

    {

       case 0:

           NSLog(@"str3 = str4");

           break;

            

       case -1:

           NSLog(@"str3 < str4");

           break;

            

       case 1:

           NSLog(@"str3 > str4");

           break;

            

       default:

           break;

    }

    

    // NSCaseInsensitiveSearch :进行完全比较,区分大小写

    // NSNumericSearch:比较字符串的字符个数,而不是字符值

    [str3 compare:str4options:NSCaseInsensitiveSearch |NSNumericSearch];


    

5,   字符串的转换

   //字符串转化成基本数据类型

   NSString *intStr = @"123456";

   int num = [intStr intValue];

    

   NSString *floatStr = @"88.88";

   float fnum = [floatStr floatValue];

   double dnum = [floatStr doubleValue];

    

   // 基本类型转化为字符串

   int a = 10;

   NSString *iStr = [NSStringstringWithFormat:@"%d",a];

    

   float f = 10.8;

   NSString *fStr = [NSStringstringWithFormat:@"%.f",f];

    

   double d = 10.8888;

   NSString *dStr = [NSStringstringWithFormat:@"%.4f",d];

    

   char* cc = "cccc";

   NSString *cStr = [NSStringstringWithFormat:@"%s",cc];

    

   //字符串转化成大小写

   NSString *str = @"abCDefg";

    

    NSString *str1 = [struppercaseString];   // 全部转化为大写

   NSString *str2 = [str lowercaseString];   // 全部转化为小写

   NSString *str3 = [str capitalizedString]; // 首字母转化为大写,其余为小写


    字符串转日期在以后介绍,这次先不介绍.


 

6,   字符串的替换

   //替换特定字符

    NSString *str =@"www.baidu.com";

    NSString *str1 = [strstringByReplacingOccurrencesOfString:@"om"withString:@"n"];

    

    // 删除特定字符

    NSString *str2 =@"www---.baidu.--com";

    NSString *str3 = [str2stringByReplacingOccurrencesOfString:@"-"withString:@""];

    

   // 去掉字符串中的空格

    NSString *str4 =@"www .baidu .com";

    NSString *str5 = [str4stringByReplacingOccurrencesOfString:@" "withString:@""];

    

    // 设置替换的区域

   NSString *str6 = [strstringByReplacingOccurrencesOfString:@"w"withString:@"a"options:NSCaseInsensitiveSearchrange:NSMakeRange(1,1)];


   

7,  字符串转换

// 字符串转数组

+ (NSArray *)arrayFromString:(NSString *)string withMark:(NSString *)markString

{

   if ([string isEqualToString:@""] || [markStringisEqualToString:@""])

    {

       return nil;

    }

    

   NSArray *result = [string componentsSeparatedByString:markString];

   return result;

}

// 数组转字符串

+ (NSString *)stringFromArray:(NSArray *)array withMark:(NSString *)markString

{

   if ((!array || 0 == array.count) || [markStringisEqualToString:@""])

    {

       return nil;

    }

    

   NSString *result = [array componentsJoinedByString:markString];

   return result;

}

8,  可变字符串

   //创建的两种方式,任选其一

    NSMutableString *mutStr = [[NSMutableStringalloc] init];

   NSMutableString *mutStr = [[NSMutableString alloc] initWithCapacity:0];

    

    // 初始化字符串

    [mutStrsetString:@"核桃"];

    

   // 动态的在字符串末尾追加

    [mutStrappendString:@"圣女果"];

    

   // 在指定的索引位置插入字符串

    [mutStr insertString:@"好吃!"atIndex:3];

    

   // 删去指定范围的字符串

   NSRange rang = {2,3};

    [mutStr deleteCharactersInRange:rang];

    

   // 替换指定范围的字符串

    [mutStr replaceCharactersInRange:rangwithString:@"abcd"];


     

这次的总结就先写到这里, 还有字符串的遍历,改变字符串中某个字符的颜色等, 会在下一次总结中一一道来.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值