• NSString从父字符串提取子字符串


    NSString除了创建, 对比等等方法, 它还可以在父字符串中提取一段字符形成一个新的子字符串.

    使用的方法一共有三种:

    substringToIndex:如果我在这方法的后面输入一个6, 意思就是截取从第一到第六个的字符, 并形成一个新的子字符串, 类似于开区间, (0 <= a > 6)

    substringFromIndex:如果我在这方法的后面输入一个5, 意思就是截取从第五到最后一个的字符串, 并形成一个新的子字符串, 类似于闭区间, (5 <= a >=x)

    substringWithRange:这个方法需要配合一个叫做NSMakeRange来使用, 需要使用NSMakeRange返回一个提取的范围给substringWithRange, 然后才能提取你要的字符, 并形成一个新的字符串.

     

    这里顺便说一下什么NSMackeRange, NSMackeRange在C语言中, 就相当于结构体一样的存在, 它里面声明了一个位置和长度的整数类型, 所以在下面的例子当中, 我们也可以看到NSMackeRange后面为什么要写(3, 4). 如果想了解更加详细的资料, 麻烦请去看一下apple公司的官方文档.

     

    下面让我们来看看一个简单的例子:

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            //介绍的是在父字符串中提取子字符串
            
            NSString *str = @"0123456789";
            //声明父字符串
            
            NSString *str2 = [str substringToIndex:6];
            //创建子字符串, 并且提取父字符串的前6个字符(但是不包括第6个字符)等字符形成一个新的字符串.
            //返回给str2, 意思类似开区间(比如像 0 <= a > 6).
            
            NSString *str3 = [str substringFromIndex:6];
            //substringFromIndex表示的是从第六个字符一直到最后一个字符的提取, 并且形成一个新的字符串.
            //返回给str3, 相当于一个闭区间(比如像 6 <= a >= 9).
            
            //NSRange range = {3, 4};
            //3表示的是提取的初始位置.
            //4表示的是提取字符的长度.
            //NSString *str4 = [str substringWithRange:range];
            //根据指点范围提取字符串.
            NSString *str4 = [str substringWithRange:NSMakeRange(3, 4)];
            //这是更加简单的写法, NSMakeRange是一个C语言的函数, 特征就是用圆括号表示.
            //NSMakeRange的函数就是创建一个range, 输入location和length, 并返回值就是一个Range类型.
            
            NSLog(@"
    str = %@", str);
            NSLog(@"
    str2 = %@", str2);
            NSLog(@"
    str3 = %@", str3);
            NSLog(@"
    str4 = %@", str4);
            //这里提取出来的字符串, 是提出来之后作为独立的新字符串存在, 而不是去修改原本的字符串.
            //新字符串只是原字符串的一部分.
        }
        return 0;
    }

    输出的结果:

    2014-10-11 15:31:54.565 DrawNSString[1151:303] 
    str = 0123456789
    2014-10-11 15:31:54.567 DrawNSString[1151:303] 
    str2 = 012345
    2014-10-11 15:31:54.567 DrawNSString[1151:303] 
    str3 = 6789
    2014-10-11 15:31:54.567 DrawNSString[1151:303] 
    str4 = 3456
    Program ended with exit code: 0
  • 相关阅读:
    php二维数组指定下标排序
    laravel使用auth管理后台amdin数据表
    laravel插件
    laravel中Horizon简单介绍适合于redis操作队列
    laravel5.5或laravel5.7版本自定义日志记录
    laravel使用"tymon/jwt-auth": "0.5.*"
    larval5.7安装jwt使用
    ubuntu ibus 输入法总在左下角不跟随光标的处理
    Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier
    30种mysql优化sql语句查询的方法<转>
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4019178.html
Copyright © 2020-2023  润新知