• Objective-C之NSString和NSMutableString


    Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。

    +(id) stringWithContentsOfFile:path encoding:enc error:err
    创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中错误

    +(id) stringWithContentsOfURL:url encoding:enc error:err
    创建一个新的字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误

    +(id) string
    创建一个新的空字符串

    +(id) stringWithString:nsstring
    创建一个新的字符串,并将其设置为nsstring

        NSString *str = @"1";

        //initwithstring和stringwithtstring是不是现在不可以直接加字符串,而是必须加字符串的名字?

        NSString *str2 = [NSString stringWithString:str];

    -(id)initWithString:nsstring
    将分配的字符串设置为nsstring

        NSString *str = @"1";

        NSString *str1 = [[NSString alloc] initWithString:str];

    -(id) initWithContentsOfFile:path encoding:enc error:err
    将字符串设置为path制定的文件的内容

    -(id) initWithContentsOfURL:url encoding:enc error:err
    将字符串设置为url(NSURL *)url的内容,使用字符编码enc,如果非零,则返回err中的错误

    -(id) (UNSIgned int)length
    返回字符串中的字符数目 

    [str length];字符串长度

    -(unichar)characterAtIndex:i  ???????
    返回索引i的Unicode字符

    -(NSString *)substringFromIndex:i
    返回从i开始知道结尾的子字符串

    -(NSString *)substringWithRange:range
    根据指定范围返回子字符串

    -(NSString *)substringToIndex:i
    返回从该字符串开始到索i的子字符串

    -(NSComparator *)caseInsensitiveCompare:nsstring
    比较两个字符串,忽略大小写

    -(NSComparator *)compare:nsstring
    比较两个字符串

    -(BOOL)hasPrefix:nsstring     // prefix为前缀的意思
    测试字符串是否以nsstring开始

    -(BOOL)hasSuffix:nsstring    // suffix为后缀 下标的意思
    测试字符串是否以nsstrng结尾

    -(BOOL)isEqualToString:nsstring  ???????与isEqual 有什么区别?
    测试两个字符串是否相等

    -(NSString *) capitalizedString
    返回每个单词首字母大写的字符串(每个单词的其余字母转换为小写)

    -(NSString *)lowercaseString  
    返回转换为小写的字符串

    -(NSString *)uppercaseString
    返回转换为大写的字符串

    -(const char*)UTF8String
    返回转换为UIF-8字符串的字符串

    -(double)doubleValue
    返回转换为double的字符串

    -(float)floatValue

    返回转换为浮点值的字符串

    -(NSInteger)integerValue
    返回转换为NSInteger整数的字符串

    -(int)intValue
    返回转换为整数的字符串

    NSMutableString方法

    NSMutableString类可以用来创建可以更改字符的字符串对句.因为是NSString的子类,所以可以使用NSString类的所有方法.
    +(id) stringWithCapacity:size
    创建一个字符串,初始包含size的字符

    -(id) initWithCapacity:size
    使用初始容量为size的字符串来初始化字符串

    -(void) setString:nsstring
    将字符串设置为nsstring

    -(void) appendString:nsstring
    在接收者的末尾附加nsstring

    -(void) deleteCharactersInRange:range
    删除指定range中的字符

    -(void) insertString:nsstring atIndex:i
    以索引i为起始位置插入nsstring

    -(void) replaceCharactersInRange:range withString:nsstring
    使用nsstring替换range指定的字符

    -(void) replaceOccurrencesOfString:nsstring withString:nsstring2 options:opts range:range
    根据选项opts。使用指定range中的nsstring2替换所有的nsstring。选项可以包括NSBackwardsSearch(从范围的结尾 开始搜索)NSAnchoredSearch(nsstring必须匹配范围的开始),NSLiteralSearch(执行逐字节比较以及 NSCaceInsensitiveSearch的按位或组合

    实例:

     1、NSString *Beijing= @"北京欢迎您";        //字符串的声明

     2、NSString *log=@"北京欢迎您a"; //[NSString stringWithFormat:@"I am '%@'",Beijing];     //字符串格式化

     3、NSString *zhui = [Beijing stringByAppendingString:@"哈哈哈"];        //字符串追加  

    结果是北京欢迎您哈哈哈;append意思为附加 挂上;

    4、bool b=[Beijing isEqualToString:log];                               //字符串比较

    5、NSString *hh = @"http://www.sina.com.cn";
        if([hh hasPrefix:@"http"]){                                          //查找以http开头的字符串
            NSLog(@"含有http");
        }else{
            NSLog(@"没有http");
        }
    6、 NSString *ss = @"123";
          int a = [ss intValue]+13;                                   //字符串转int型
          double dd = [ss doubleValue]+33.3;                          //字符串转double型
          NSLog(@"%g",dd);
    7、字符串转数组 
        NSString *zifuchuan =@"one,two,three,four";
        NSLog(@"string:%@",zifuchuan);
        NSArray *array = [zifuchuan componentsSeparatedByString:@","];
    //    NSLog(@"array:%@",array);                             //输出整个数组中所有元素 
    结果:
    2015-08-19 16:30:19.900 Demo[93879:4702032] string:one,two,three,four
    2015-08-19 16:30:19.901 Demo[93879:4702032] array:(    one,    two,    three,    four)     NSString *value = [array objectAtIndex:0];          //取出第0个元素
        NSLog(@"value:%@",value);
    结果:
    2015-08-19 16:33:03.577 Demo[93917:4703555] value:one
    8、//数组转字符串
        NSString * zifuchuan2 = [array componentsJoinedByString:@","];
        NSLog(@"zifuchuan2:%@",zifuchuan2);
    结果:zifuchuan2:one,two,three,four    
    9、-substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
    NSString *string1 = @"This is a string";
    NSString *string2 = [string1 substringToIndex:3];
    NSLog(@"string2:%@",string2);
    结果:string2:Thi
     
    10、-substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符
    NSString *string1 = @"This is a string";
    NSString *string2 = [string1 substringFromIndex:3];
    NSLog(@"string2:%@",string2);
    结果:2015-08-19 16:41:51.772 Demo[94021:4708352] string2:s is a string
     
    11、-substringWithRange: //按照所给出的位置,长度,任意地从字符串中截取子串
    NSString *string1 = @"This is a string";
    NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];
    NSLog(@"string2:%@",string2);
    结果:string2:This
     

    //去除字符串中用括号括住的位置
    -(NSString *)handleStringWithString:(NSString *)str{

    NSMutableString * muStr = [NSMutableString stringWithString:str];
    while (1) {
    NSRange range = [muStr rangeOfString:@"("];
    NSRange range1 = [muStr rangeOfString:@")"];
    if (range.location != NSNotFound) {
    NSInteger loc = range.location;
    NSInteger len = range1.location - range.location;
    [muStr deleteCharactersInRange:NSMakeRange(loc, len + 1)];
    }else{
    break;
    }
    }

    return muStr;
    }

     
    --------操作动态字符串--NSMutableString----------------------------------------------------
        NSMutableString *mstr = [[NSMutableString alloc] init];实例话一个可变字符串;
        NSString *str1 = @"This is a example.";
        //创建可变字符串
        mstr = [NSMutableString stringWithString:str1];
        //插入字符
        [mstr insertString:@"very easy " atIndex:10];
    结果:
    2015-08-19 16:48:13.620 Demo[94107:4712065] This is a very easy example. 
       
        [mstr deleteCharactersInRange:NSMakeRange(10,5)];//删除一些字符
    结果:2015-08-19 16:51:54.396 Demo[94184:4714267] This is a easy example.   
     
     //查找并删除
        NSRange substr = [mstr rangeOfString:@"example"];             //字符串查找,可以判断字符串中是否有
        if (substr.location != NSNotFound) {
            [mstr deleteCharactersInRange:substr];
        }
        //重新设置字符串
        [mstr setString:@"This is string AAA"];
        //替换字符串
        [mstr replaceCharactersInRange:NSMakeRange(15, 2) withString:@"BBB"];   //从第15个字符串处替换掉后2个字符串
    结果:2015-08-19 16:54:14.757 Demo[94216:4715472] This is string BBBA    
     
    //查找第一个并替换
        NSString *search = @"This is";
        NSString *replace = @"An example of";
        substr = [mstr rangeOfString:search];//  substr类型为nsrange;
        if (substr.location != NSNotFound) {
            [mstr replaceCharactersInRange:substr withString:replace];      //把第1个遇到的substr替换为replace
            NSLog(@"%@",mstr);
        }

    //rangeOfString 前面的参数是要被搜索的字符串,后面的是要搜索的字符

    //NSNotFound 表示请求操作的某个内容或者item没有发现,或者不存在

       
      //查找全部匹配的,并替换
        search = @"a";
        replace = @"X";
        substr = [mstr rangeOfString:search];
        while (substr.location != NSNotFound) {
            [mstr replaceCharactersInRange:substr withString:replace];
            substr = [mstr rangeOfString:search];
        }

        NSLog(@"%@",mstr);

  • 相关阅读:
    (6)sql/puls
    (5)Toad for oracle使用
    (4)oracle连接工具和配置监听
    (3)oracle建用户、建表、权限、命名空间
    (2)oracle服务、建库
    (1)oracle安装、卸载、启动、关闭、登陆以及同时遇到的问题
    (1)C#工具箱-公共控件1
    Tarjan
    最小表示法
    STL
  • 原文地址:https://www.cnblogs.com/wangliyuan/p/4742847.html
Copyright © 2020-2023  润新知