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()


NSRange and NSString对象的更多相关文章

  1. (转载)OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象

    在之前的一篇文章中我们说到了Foundation框架中的NSObject对象,那么今天在在来继续看一下Foundation框架中的常用对象:NSString和NSMutableString. 在OC中 ...

  2. OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象

    今天在在来继续看一下Foundation框架中的常用对象:NSString和NSMutableString 在OC中NSString对象是不可变的,和Java中的String一样的,而NSMutabl ...

  3. iOS --转载 NSRange 和 NSString 详解

    一.NSRange 1.NSRange的介绍 NSRange是Foundation框架中比较常用的结构体, 它的定义如下: typedef struct _NSRange { NSUInteger l ...

  4. NSString 对象保存在哪? @“xxx”和 stringWithFormat:@"xxx" 区别?

    NSString *str1=@"string";//这种是保存在常量池 NSString *str2=@"string"; NSLog(@"str1 ...

  5. ios7对于NSString对象进行了的变更

    1.instancetype替代id来做返回值的类型.

  6. Foundation框架-NSString和NSMutableString

    可变与不可变的字符串 --1-- Foundation框架介绍 1.1 框架介绍 --2-- NSString 2.1 NSString介绍及使用 2.2 NSString创建方式  2.3 从文件中 ...

  7. iOS基础-NSString及NSMutableString剖析

    一.NSString头文件 NSString : NSObject 实现协议: NSCopying/NSMutableCopying/NSSecureCoding 类别: //扩展类别 NSStrin ...

  8. NSString学习

    基本概念 NSString是以UTF-16 code uint的序列.所有的长度.字符.范围都是以16比特platform-endian(大端序小段序基于平台)的形式表示的. 所以,一个英文字母的长度 ...

  9. OC第二节 —— NSString和NSMutableString

    1.为什么需要NSString对象        答:在OC中创建字符串时,一般不使用C的方法,    因为C将字符串作为字符数组,所以在操作时会有很多不方便的地方,    在Cocoa中NSStri ...

随机推荐

  1. 题解报告:hdu 1527 取石子游戏(威佐夫博弈)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1527 Problem Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石 ...

  2. html5——语义标签

    传统布局 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...

  3. vim之补全2(完全个人定制版)

    关于补全的方面要说的的确很多, 这里选择分为两个章叙述. 如果你想学vim, 你需要有很强的耐心, 如果你想锻炼这种耐心, 你可以试着先看完我之前的文章. 好了, 下面继续我们的vim补全吧. vim ...

  4. RTL Compiler之synthesis flow

    1 generic RTL Compiler work flow 2 invoking RTL compiler RTL Compiler is invoked from the operating ...

  5. C# 字符串的入门

    1."@"表示字符串中的"\"不当成转义符. 2.转义符或者特殊处理的一些字符只是针对于代码中直接写出的字符串中,对于程序运行中读取出来的转义符或者特殊处理的字 ...

  6. 《C++ Primer 第5版》第1章

    1.1 一个简单的C++程序 #include <iostream>int main() {    std::cout << "Hello World!" ...

  7. .net core发布程序

    这里说的是,和.net core运行库一起发布,所以,目标运行系统,可以不安装.net core也能运行 1.project.json 把dependencies里面的type删除掉,后面加入&quo ...

  8. 【数据结构】C语言栈的基本操作

    #include<stdio.h> #include<stdlib.h> #include<malloc.h> //定义节点 struct Node { int d ...

  9. 20180429NOIP提高组精英班Day1测试

  10. 直流电机PWM调速系统中控制电压非线性研究_控制元件_工业自动化控制_文章

    直流电机PWM调速系统中控制电压非线性研究_控制元件_工业自动化控制_文章_e-works数字化企业网 http://articles.e-works.net.cn/Component/Article ...