美文网首页
OC语言day07-12字符串截取

OC语言day07-12字符串截取

作者: liyuhong165 | 来源:发表于2016-07-17 19:56 被阅读229次

    pragma mark 字符串截取

    pragma mark 概念

    pragma mark 代码

    #import <Foundation/Foundation.h>
    #pragma mark 类
    
    #pragma mark main函数
    int main(int argc, const char * argv[])
    {
    #pragma mark 字符串的截取
    
    #warning  字符串截取 (substringWithRange : 返回一个新的字符串)
        NSString *str = @"<head>lyh_hehe66</head>";
    
        // NSRange : 位置 / 长度
        // 从第6位开始, 获取 3位的长度
        
        // 创建结构体的两种方式
        // 1.
    //    NSRange range = {6,3};
        // 2.
        /*
        NSRange range;
        range.location = 6;
        range.length = 3;
         */
        
    #warning 开发常用
        // 只要是OC提供的结构体, 一般都可以使用NSMake XXX创建
        NSRange range = NSMakeRange(6, 3);
        
        NSString *newStr = [str substringWithRange:range];
        NSLog(@"str = %@",str);
        NSLog(@"newStr = %@",newStr);
        
    #warning 动态获取长度 获取开始位置 和 结尾的位置 >xxxxx<
    
        // 1.动态获取 截取的起始位置
        NSUInteger location = [str rangeOfString:@">"].location + 1; // 加1 是获取> 后面的 字母的位置
        
        // 2.动态获取 截取的长度
        // 注意: rangeOfString 是 从左至右的开始 查找的 如果需要是从后往前找 需要用多一个参数
        
        // 从后往前找
    //    NSUInteger length = [str rangeOfString:@"<" options:NSBackwardsSearch].location - 1;
        
        //
        NSUInteger length = [str rangeOfString:@"</"].location - location;
        
        NSLog(@"location = %lu,length = %lu",location,length);
        
        
    #warning 列子
        NSString *t = @"abcda";
        /**
         {
         NSCaseInsensitiveSearch = 1,
         NSLiteralSearch = 2,
        NSBackwardsSearch = 4,      // 从后面往前
        NSAnchoredSearch = 8,
        NSNumericSearch = 64,
        NSDiacriticInsensitiveSearch
        NSWidthInsensitiveSearch
        NSForcedOrderingSearch
        NSRegularExpressionSearch
    };
         */
        
        
        /*
        NSRange range22 = [t rangeOfString:@"a" options:NSBackwardsSearch];
        NSLog(@"%lu",range22.location);
        
        
    #warning 字符串截取2 (substringFromIndex 从什么地方开始,一致截取到最后)
        str = @"<head>lyh</head>";
        
        NSString *newStr1 = [str substringFromIndex:6];
        NSLog(@"newStr1 = %@",newStr1);
        
    #warning 字符串截取3 (substringToIndex 从开头开始截取, 一直截取到什么位置)
        NSString *newStr2 = [str substringToIndex:6];
        NSLog(@"newStr2 = %@",newStr2);
        */
        
        
        // 例子2
        /*
         <head>lyh</head> -- > lyh</head> --> lyh
         <head>lyh</head> -- > <head>lyh  --> lyh
         */
        
        // 获取开始位置
        NSString *str66 = @"<head>lyh</head>";
    
        NSUInteger location22 = [str66 rangeOfString:@">"].location + 1;
        NSString *newStr22 = [str66 substringFromIndex:location22];
        NSLog(@"newStr22 = %@",newStr22);
        
        location22 = [newStr22 rangeOfString:@"</"].location;
        // 改变了 指针的指向,并不是修改了原来的字符串
        newStr = [newStr substringToIndex:location22];
        NSLog(@"newStr = %@",newStr);
        return 0;
    }
    
    
    

    相关文章

      网友评论

          本文标题:OC语言day07-12字符串截取

          本文链接:https://www.haomeiwen.com/subject/gtcpjttx.html