zoukankan      html  css  js  c++  java
  • ios开发之--NSString的操作

    NSString的操作,下面记录下他的常用方法:

    NSString *str = @"1111111111aaaaaaaaa2222222222";

    1、查找

    //查找
        NSRange range = [str rangeOfString:@"aaa"];
        if (range.location == NSNotFound) {
            NSLog(@"str中没有找到aaa");
        }else{
            NSLog(@"str中包含");
        }
        //另一种方法
        if (range.length == 0) {
            NSLog(@"str中没有找到aaa");
        }else{
            NSLog(@"str中包含");
        }

    比较的方法:

    [value compare:(NSString *)];
    
    [value compare:(NSString *) options:(NSStringCompareOptions)];
    
    [value compare:(NSString *) options:(NSStringCompareOptions) range:(NSRange)];

    这里说下options属性,这个是个枚举,如下:

    enum{
    
        NSCaseInsensitiveSearch = 1,//不区分大小写比较
    
        NSLiteralSearch = 2,//区分大小写比较
    
        NSBackwardsSearch = 4,//从字符串末尾开始搜索
    
        NSAnchoredSearch = 8,//搜索限制范围的字符串
    
        NSNumbericSearch = 64//按照字符串里的数字为依据,算出顺序。例如 Foo2.txt < Foo7.txt < Foo25.txt
    
    //以下定义高于 mac os 10.5 或者高于 iphone 2.0 可用
    
        NSDiacriticInsensitiveSearch = 128,//忽略 "-" 符号的比较
    
        NSWidthInsensitiveSearch = 256,//忽略字符串的长度,比较出结果
    
        NSForcedOrderingSearch = 512//忽略不区分大小写比较的选项,并强制返回 NSOrderedAscending 或者 NSOrderedDescending
    
    //以下定义高于 iphone 3.2 可用
        NSRegularExpressionSearch = 1024//只能应用于 rangeOfString:..., stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:... 方法。使用通用兼容的比较方法,如果设置此项,可以去掉 NSCaseInsensitiveSearch 和 NSAnchoredSearch
    
    }

    返回值:

    返回值:
    
    typedef enum _NSComparisonResult {
         NSOrderedAscending = -1,    // < 升序
         NSOrderedSame,              // = 等于
         NSOrderedDescending   // > 降序
    } NSComparisonResult;

    使用如下:

     BOOL result;
    result
    = [str compare:@"444"]; [str compare:@"333" options:NSCaseInsensitiveSearch]; [str compare:@"555" options:NSLiteralSearch range:range];

    2、截取操作

    //截取字符串
        //截取,loc标示第几个字符开始,len标示截取两个字符
        NSString *bStr = [str substringWithRange:NSMakeRange(0, 2)];
        NSLog(@"%@",bStr);
        //从第n+1为开始截取,至字符串最后
        NSString *bStr1 = [str substringFromIndex:0];
        NSLog(@"%@",bStr1);
        //从首字母开始截取第n个字符
        NSString *bStr2 = [str substringToIndex:3];
        NSLog(@"%@",bStr2);

    3、拆分

        //拆分
        //从字符串8中分割成2个元素的数组  这个方法可以实现字符串和数组直接互转
        NSArray *array = [str componentsSeparatedByString:@"8"];
        NSLog(@"array:%@",array);
        NSLog(@"ary1 is %@",[array firstObject]);
        NSLog(@"ary2 is %@",[array lastObject]);

    4、替换

    NSString *str1 = @"123456789";
        NSString *replacedStr = [str1 stringByReplacingOccurrencesOfString:@"345" withString:@"想要替换成字符串"];
        NSLog(@"erplacedStr === %@",replacedStr);

    5、插入

    //插入  只能对可变字符串操作,下面insert方法,依次是原字符串,插入的字符,插入的位置
        NSMutableString *currentStr = [NSMutableString stringWithFormat:@"%@",@"豫A88888"];
        NSMutableString *insertStr = [[NSMutableString alloc]initWithString:@"-"];
        [currentStr insertString:insertStr atIndex:2];
        NSLog(@"currentstr is %@",currentStr);

    6、验证

    //验证,包含的前标和后标
        NSString *str2 = @"http:www.baidu.com";
        BOOL a = [str2 hasPrefix:@"http"];//前缀
        BOOL b = [str2 hasSuffix:@"com"];//后缀
        NSLog(@"a===%@,b===%@",a ?@"YES":@"NO",b ?@"YES":@"NO");

    7、大小写互转

    //改变字符串的大小写
        NSString *str3 = @"zhengXZHOU";
        NSString *da = [str3 uppercaseString];//转成大写
        NSString *xiao = [str3 lowercaseString];//转成小写
        NSString *shouDa = [str3 capitalizedString];//首字母大写,其余小写
        NSLog(@"
    %@
    %@
    %@",da,xiao,shouDa);

    8、编码   解码

    //编码   解码
        //编码
        NSString *hStr = @"你好啊";
        NSString *uniStr = [NSString stringWithUTF8String:[hStr UTF8String]];
        NSData *uniData = [uniStr dataUsingEncoding:NSNonLossyASCIIStringEncoding];
        NSString *goodStr = [[NSString alloc] initWithData:uniData encoding:NSUTF8StringEncoding] ;
        NSLog(@"goodstr is %@",goodStr);
        
        //解码
        const char *jsonstr = [goodStr UTF8String];
        NSData *jsonData = [NSData dataWithBytes:jsonstr length:strlen(jsonstr)];
        NSString *goodMsg = [[NSString alloc]initWithData:jsonData encoding:NSNonLossyASCIIStringEncoding];
        NSLog(@"goodmsg is %@",goodMsg);

    下面附上相应的打印:

    仅做记录!

  • 相关阅读:
    HDU4812 D Tree(树的点分治)
    BZOJ1834 [ZJOI2010]network 网络扩容(最小费用最大流)
    HDU4862 Jump(放大边权的费用流)
    SCU3185 Black and white(二分图最大点权独立集)
    HDU3729 I'm Telling the Truth(字典序最大的最大流)
    HDU3586 Information Disturbing(树形DP)
    HDU3657 Game(最小割)
    POJ3162 Walking Race(树形DP+尺取法+单调队列)
    SCU3312 Stockholm Knights(最大流)
    Codeforces 161D Distance in Tree(树的点分治)
  • 原文地址:https://www.cnblogs.com/hero11223/p/9330484.html
Copyright © 2011-2022 走看看