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. [转]Linux命令之iconv

    转自:http://lorna8023.blog.51cto.com/777608/420313 用途说明 iconv命令是用来转换文件的编码方式的(Convert encoding of given ...

  2. scala的Class

    先看类的定义: package com.test.scala.test import scala.beans.BeanProperty /** * scala 的类 */ //定义一个scala的类 ...

  3. C#图片辅助类,形成缩略图

    完善一下别人的方法,成自己好用的工具 using System.Drawing; using System.Drawing.Imaging; namespace GXNUQzzx.Tools.Util ...

  4. js常用操作~~~~将持续更新

    1.替换多个模板变量 var s="my javascript is very poor,who can help me?" var reg=/(\w*)my(.*)is(.*)c ...

  5. <assert.h>

    Diagnostics 定义宏: void assert (scalar-expression); 若expression为0,则打印出错信息(类似Assertion failed: expressi ...

  6. [Codeforces]Codeforces Round #490 (Div. 3)

    Mishka and Contest #pragma comment(linker, "/STACK:102400000,102400000") #ifndef ONLINE_JU ...

  7. iOS 从xib中加载自定义视图

    想当初在学校主攻的是.NET,来到公司后,立马变成java开发,之后又跳到iOS开发,IT人这样真的好么~~  天有不测风云,云还有变幻莫测哎,废话Over,let's go~ 新学iOS开发不久,一 ...

  8. .net 大数据量,查找Where优化(List的Contains与Dictionary的ContainsKey的比较)

    最近优化一个where查询条件,查询时间很慢,改为用Dictionary就很快了.  一.样例 假设:listPicsTemp 有100w条数据,pictures有1000w条数据. 使用第1段代码执 ...

  9. mysql GTID主从复制(主库在线,添加新丛库)

    要求: 1.         主库上线,主库不停止服务的前提下做主从复制 2.         新添加一个丛库 操作: 1.         在主库导出数据(主库正常运行): 2.         将 ...

  10. CSS——background

    背景经常用到以下属性: background-color: aliceblue; background-image: url('2017102601.png'); background-positio ...