zoukankan      html  css  js  c++  java
  • NSRange and NSString对象

    http://www.cnblogs.com/pengyingh/articles/2451292.html

    当谈到NSString方法时,你会发现很多都涉及到NSRange。不必操心。它事实上仅仅只是是一种C语言结构用来帮助描写叙述一系列的条款,包含一个起点位置和一个计数方法。比如。一个行列通过从还有一个字符串中摘取一个子字符串的方法是非常有效的。你能够对其指定起始位置以及所需的元素数量(以下会向你详细阐述)。

    NSRange 定义
    关于NSRange的结构。定义例如以下:
    typedef struct_NSRange 
    {
    NSUInteger location;
    NSUInteger length;
    } NSRange;
    location是在行列中的起始位置(基于零点)而length是行列中的条目个数。NSUInteger仅仅是单纯的一个无符号的值,它支持32位和64位系统。

    以下是有关它的定义:
    #if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE ||TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
    typedef unsigned long NSUInteger;
    #else
    typedef unsigned int NSUInteger;
    #endif

    NSRange和字符串
    这个演示样例告诉了你一个创建行列的方法,通过使用同样的字符串来摘录一个子字符串——输出结果为IPA
    NSString *homebrew= @"ImperialIndia Pale Ale (IPA)";
    //起始位置为25,获取3个特征值
    NSRange range =NSMakeRange (25,3);
    //这样的方法相同有效
    // NSRange行列为{25, 3}
    NSLog (@"Beershortname: %@", [homebrewsubstringWithRange:range]);
    假设你想要搜寻一个子字符串,你能够通过下列代码:
    NSString *homebrew= @"ImperialIndia Pale Ale (IPA)";
    NSRange range = [homebrew rangeOfString:@"IPA"];
    // Did we find the string "IPA" ? 我们找到字符串"IPA"了么?
    if (range.length> 0)
    NSLog(@"Range is: %@", NSStringFromRange(range));
    输出结果将显示为:Range is: {25, 3}。当中有一点非常重要,就是指令NSStringFromRange()将显示传回(一个行列)的值作为一个NSString。相同你还能够通过创建一个字符串的行列得到一个NSRangeFromString()功能。


    让我们再看还有一个演示样例,下述代码将从字符串的末尾開始向前搜索“ia”字符串:
    NSString *homebrew= @"ImperialIndia Pale Ale (IPA)";
    //从末尾開始搜索"ia"字符串
    NSRange range = [homebrew rangeOfString:@"ia"options:NSBackwardsSearch];
    //判别查找到的字符串是否正确
    if (range.length> 0)
    NSLog(@"Range is: %@", NSStringFromRange(range));
    上述结果将显示为:Range is: {12, 2}(“ia”出如今单词“India”中)

    NSRange功能
    下面就是在处理行列时,可能须要的一些功能:
    NSEqualRanges()
    NSIntersectionRange()
    NSLocationInRange()
    NSMakeRange()
    NSMaxRange()
    NSRangeFromString()
    NSStringFromRange()
    NSUnionRange()


  • 相关阅读:
    错误1053:服务没有及时响应启动或控制请求
    错误号码2003 Can't connect to MySQL server 'localhost' (0)
    分析slow-log 每小时慢sql情况
    用spring annotation声明的bean,当打包在jar中时,无法被扫描到
    mysql 锁查看
    linux 使用expect
    tomcat启动报错:java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener
    Spring LDAP authenticate method with Pooling
    一步步教你使用Proguard混淆Java源代码
    JAVA获取CLASSPATH路径
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6917849.html
Copyright © 2011-2022 走看看