zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    【原】yield的最基本用法
    【转】C#.net拖拽实现获得文件路径
    【原】.Net之美学习笔记-第1章-1.1.1值类型
    【转】怎样将DataGridView中绑定的表的列名改成中文
    【转】WPF获取外部EXE图标最简单的方法
    【转】C# Excel 导入到 Access数据库表(winForm版)
    【转】SQL2008清除日志
    【原】监视程序运行时间
    【转】MSSQL获取指定表的列名信息,描述,数据类型,长度
    【原】接口
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4019178.html
Copyright © 2011-2022 走看看