• OC中Foundation框架之NSString、NSMutableString


    创建方式

     1 1)直接赋值
     2     NSString *str =@"abc";
     3 2)创建对象
     4     NSString *str2 = [[NSString alloc]init];
     5                     str2 =@"abc"
     6 3)格式化创建
     7      NSString *str3=[NSString stringWithFromat :@"@",@"abc"];
     8                      
     9 4)从文件中获取
    10     NSString strand =[NSString stringWithContentsOfFile:@"/Users/apple/Desktop/test.txt" usedEncoding:NSUTF8StringEncoding error:&err];
    11 
    12 
    13 5)把字符串写入到文件
    14     NSString *str7 = @"abc";
    15                                             //路径                            //原子性
    16                     str7 writeToFile :(NNString *) atomically :(BOOL)
    17               //编码格式                         //错误信息
    18  encoding:(NSStringEncoding) error:(NSError **);
    19 
    20 
    21     NSERROR *err=nil;
    22     BOOL flag=str7 writeToFile:@"/Users/apple/Desktop/test.txt" atomically:NO encoding : NSUTF8StringEncoding error:(&err];
    23     if(flag){
    24         NSLog(@"写入成功");
    25     }
    26 
    27     if(err != nil){
    28         NSLog(@"写入失败");
    29     }else{
    30         NSLog(@"写入成功");
    31     }

    使用NSURL读写字符串

     1 //1)使用NSURL 写入字符串数据到文件中
     2 
     3 NSURL *writeUrl = [NSURL URLWithString:@"file:///Users/apple/Desktop/1.txt"];
     4 
     5 NSString *str =@"itcast";
     6 
     7 BOOL isSucess = str writeToURL :writeUrl atomically:NO encoding:NSUTF8StringEncoding error:nil];
     8 
     9 if(isSucess){
    10     NSLog(@"写入成功");
    11 }
    12 
    13 
    14 
    15 //2)使用NSURL读取字符串到文件
    16 
    17 NSURL *readUrl =[NSURL URLWithString:@"file:////Users/apple/Desktop/1.txt"]
    18 NSString *straighten = [NSString stringWithContentsOfURL:readUrl encoding :NSUTF8StringEncoding error:nil];
    19 NSLog(@"%@",str2);

     NSString 字符串的比较

     1 1)比较两个字符串大小
     2     compare 方法:返回结果有三种:
     3             NSOrderedAscending         str < str2  -1     
     4             NSOrderedSame               str == str2      
     5             NSOrderedDescending       str >str2  1
     6 
     7 2)比较时指定条件
     8     如果要忽略大小写的话,可以在options 里面加入参数 NSCaseInsensitiveSearch
     9 
    10      [str1 compare: str2 options:NSCaseInsensitiveSearch];
    11 
    12    条件有很多:
    13         NSCaseInsensitiveSearch: 不区分大小写字符
    14         NSLiteralSearch:            进行完全比较,区分大小写(默认)
    15         NSNumericSearch:          比较字符串的字符个数,而不是字符值
    16         ..... 等等 还有很多
    17 
    18 3)判断是否相同
    19     isEqualToString
    20 4) NSString前后缀检查
    21     判断字符串是否以另一个字符串开头
    22     -(BOOL) hasPrefix:(NSString *) aString 
    23     以什么结尾
    24     -(BOOL) hasSuffix :(NSString *) aString
    25 5)字符串的查找
    26      判断是否包含某个字符串,返回的为第一次出现的范围,NSRange包含两个成员 location :位置       length 长度, 如果查找不到,返回的Ranage的长度为0,位置为一个特别大得数
    27     -(NSRange) rangeOfString:(NSString *) aString;
    28     
    29      反向判断是否包含(加入条件 NSBackwardsSearch]
    30      -(NSRange) rangeOfString :(NSString *) options: NSBackwardsSearch
    31 
    32     
    33         if(range.location != NSNotFound)

      6)字符串的截取
         从指定位置from开始(包括指定位置的字符)到末尾
        -(NSString *) substringFromIndex:(NSUInteger) from;
         从开头截取至to的位置,不包含to位置的字符
        -(NSString *) substringToIndex :(NSUInteger) to;
          按照所给出的NSRange从字符串截取子串
        -(NSString *)substringWithRange:(NSRange) range;
      7)字符串的替换
          用replacement替换target
        -(NSString *) stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
       8) 获取字符串的长度
        -(NSUInteger) length;
       9) 返回index位置对应的字符
        -(unichar)characterAtIndex:(NSUInteger)index;
       10)字符串和其他数据类型的转换
        -(double) doubleValue
        -(float) floatValue
        -(int) intValue
        OC的字符串和C的字符串的互转
        NSString *s4=@"helloworld";
        const char *ss =[s4 UTF8String];

        char ch[]="itcast";
        NSString *ocString =[NSString stringWithUTF8String :ch];
       11)去除空格
            去除所有的空格
           [str stringByReplacingOccurrencesOfString:@" " withString"@""]
            去除首尾的空格
           [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
            去除头尾的小写字母
           lowercaseLetterCharacterSet
            去除头尾的大写字母
           uppercaseLetterCharacterSet
            去掉头尾的指定字符串
           characterSetWithCharactersInString:(NSString *)aString;

    NSRange使用

    1 NSRange是Foundation框架中比较常用的结构体,
    2     type struct _NSRange{
    3         NSUInteger location;
    4         NSUInteger length;
    5     }   
    6     //NSUInteger 的定义
    7     typedef unsigned int NSUInteger;
    8     typedef unsigned long NSUInteger;
      通常用来表示一个范围,字符串里的字符长度,数组中元素的范围

    创建:
      1)直接赋值
         NSRange range = {2,5};
      2)先定义后赋值
         NSRange range2;
         range2.location = 1;
         range2.length = 23;
      3)使用NSMakeRange 创建一个NSRange类型的变量
        NSRange range3 = NSMakeRange(45 ,3);

      

    NSMutableString 的概念

    1 NSMutableString类 继承NSString类,那么NSString提供的方法在NSMutableString中基本都可以使用,NSMutableString好比一个字符串链表,它可以任意的动态在字符串中添加字符串 ,删除字符串 ,指定位置插入字符串,使用它来操作字符串会更加灵活
    2 --类似于java中的StringBuffer /StringBuilder

    NSMutableString特有的方法

     1 具有NSString的所有方法
     2 
     3 创建一个空字符串
     4 NSMutableString *str2 = [NSMutableString string];
     5 给字符串追加内容
     6     [str2 appendString:@"welcome"];
     7 拼接一段格式化字符串到最后面
     8     -(void) appendFormat:(NSString *)format,...;
     9 从指定的range开始,删除字符
    10     -(void) deleteCharactersInRange:(NSRange) range;
    11 在loc这个位置插入aString
    12     -(void)insertString:(NSString *) aString atIndex:(NSUInteger)loc;
    13 使用aString替换range范围内的字符串,一般不是以string开头的一般都不会产生一个新的字符串,replaceOccurrencesOfString方法不需要传范围参数
    14     -(void)replaceCharactersInRange:(NSRange)range withString :(NSString *)aString;
    15 
    16 替换需要传入range 通常配合rangeOfString 一起使用
    17 NSRange rage =[str rangeOfString:@"itcast"];

    注意事项:

     1 1)
     2     NSMutableString *str =@"xxx"; //这种方式创建的是NSString而不是NSMutableString
     3 
     4 2)NSMutableString的string属性:会将源对象的所有字符串都覆盖掉
     5     .string 属性可以修改字符串的内容
     6 
     7     例如:
     8             NSMutableString *str =[NSMutableString string];
     9             [str appendString:@"itcast"];
    10             str.string=@"a";
    11 3)位枚举,枚举值是2的0次方、1次方、2次方...
    12     String 的附带条件 options 所传入的就是位枚举, 所以可以直接输入 0 2 4等
  • 相关阅读:
    算法初步——贪心B1020/A1070月饼
    class.forname()用法 转
    java的几种连接池
    java中调用xml的方法:DocumentBuilderFactory
    java中HashMap详解
    使用J2SE API读取Properties文件的六种方法
    java读取properties配置文件信息
    学习(二)
    json入门(二)
    什么是序列化?在什么情况下将类序列化?
  • 原文地址:https://www.cnblogs.com/developer-wang/p/4507360.html
Copyright © 2020-2023  润新知