NSRange用法及和NSString的关系 关系代词as的用法

Objective-C中判断字符串是否包含其他字符串

-(BOOL) hasPrefix:(NSString *) astring;检查字符串是否以astring开头;
-(BOOL) hasSuffix:(NSString *) astring;检查字符串是否以astring结尾;
使用方式:
NSString *filename=@"hello,world";
if([filename hasPrefix:@"hello"]){
...
}
if([filename hasSuffix:@"world"]){
...
}
如果想知道字符串内的某处是否包含其他的字符串,使用rangeOfString:
-(NSRange) rangeOfString:(NSString *) astring;
将rangeOfString:发送给一个NSString对象时,传递的参数时要查找的字符串。它会返回一个NSRangestruct来告诉你一个与这个字符串相匹配的部分从哪里开始以及匹配上的字符个数。
NSRange range=[filename rangeOfString:@"o,world"];
if(range.location!=NSNotFound){
return true;
}else{
return false;
}

NSRange的用法【转】

NSRange的定义
typedef struct _NSRange
{
unsigned int location;
unsigned int length;
}NSRange;
NSMakeRange函数
--这个函数比较特殊 返回一个NSRange的对象。
NSRange用法及和NSString的关系 关系代词as的用法
NSMakeRanger(unsigned int location,unsigned int length);
例如:
NSRange range = NSMakeRanger(0,5);

NSLog(@"location is %d,length is%d",range.location,range.length);

数据截取实例:

unsigned char aBuffer[1024];
NSRange range= NSMakeRange(start point,length);

[myData getBytes:aBuffer range:range];//把range范围的字符串放入aBuffer中

NSData *Data=[NSData dataWithBytes:aBuffer length];//再把aBuffer放入NSData中

NSRange 用法

2011-08-12 19:34:09| 分类: ios | 标签:nsrange用法 |字号大中小 订阅

摘自:http://hi.baidu.com/ferrari_yang/blog/item/811e92c299396e0a0ef477a7.html

NSRange的定义

typedef struct _NSRange

{

NSUInteger location;

NSUInteger length;

} NSRange;

NSRange是一个结构体,其中location是一个以0为开始的index,length是表示对象的长度。他们都是NSUInteger类型。而NSUInteger类型的定义如下:

#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

例子:

下面这个例子,将输出IPA

NSString *homebrew = @"Imperial India Pale Ale (IPA)";

// Starting at position 25, get 3 characters

NSRange range = NSMakeRange (25, 3);

// This would also work:

// NSRange range = {25, 3};

NSLog (@"Beer shortname: %@", [homebrewsubstringWithRange:range]);

搜索字符串:

NSString *homebrew = @"Imperial India Pale Ale (IPA)";

NSRange range = [homebrew rangeOfString:@"IPA"];

// Did we find the string "IPA" ?

if (range.length > 0)

NSLog(@"Range is: %@", NSStringFromRange(range));

上面的程序将输出Range is: {25,3}。NSStringFromRange()方法,将一个NSRange返回一个NSString。而另外一个函数NSRangeFromString()则是将NSString转换为NSRange

下面这个例子将从后向前反向搜索字符串:

NSString *homebrew = @"Imperial India Pale Ale (IPA)";

// Search for the "ia" starting at the end of string

NSRange range = [homebrew rangeOfString:@"ia"options:NSBackwardsSearch];

// What did we find

if (range.length > 0)

NSLog(@"Range is: %@", NSStringFromRange(range));

上面的程序将输出:Range is: {12, 2}

ac

如果你要获取一个字符串或者一个数组中的一个子集,那么使用NSRange会很方便的定义这个子集。

NSRange定义

Declaration: typedef struct _NSRange {

NSUInteger location;

NSUInteger length;

} NSRange;

创建NSRange的方法定义

Declaration: NSRange NSMakeRange (

NSUInteger loc,

NSUInteger len

);

例如获取一个数组的一个子集:

NSRange range = NSMakeRange(0, 5);

NSArray *subArray = [self.states subarrayWithRange:range];

这样就获得了这个数组中0开始的5个元素的子集。

当谈到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 = [homebrewrangeOfString:@"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()

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/291864.html

更多阅读

Kgf和N的换算关系? kgf与n换算

按照国务院国发(1984)28号文“国务院关于在我国统一实行法定计量单位的命令”及航空工业部的有关要求,各种标准及技术资料等,从1986年1月1日起,必须贯彻执行新的法定计量单位。由于千克力(kgf)与牛顿(N)两单位的换算关系为:1kgf=9.8

PX-PTA-涤纶产业链简介及个股点评 px和pta的关系

【作者“剑胆琴心”介绍】操作方式:中线波段。左侧交易居多。短线操作:偶尔为之。选股:基本面选股。景气行业个股;大事件主题个股;业绩连续增长个股。买卖点:技术指标确定买卖点。资金仓位:集中投资个股50%;事件驱动个股30%~50%;不满仓。投资

汽车发动机转速和速度的关系 汽车转速与速度的关系

其他回答(4)乌兹米 20级 2009-11-02没有绝对关系,转速只是和引擎的输出大小有关,至于车速高低,由变速箱进行调整分配,和转速没有直接联系,就算你把转速轰到了4000,但如果还在低档位,车速也上不了40公里。评论(0) 0 0俄做伱のv① 6级 2009-11

为什么我和父母的关系这么差? 我和父母一起学安全

我和父母的关系一直很差,当然是我的眼里,在他们眼里我不知道是什么,可能是我比较任性,或者只是脾气不好吧。我很多时间恨我的父母,讨厌他们,我理解所以80后的孩子们“父母是祸害”的言论,我也是个不折不扣的80后。有的时候我努力的说服自

介词+关系代词 介词加关系代词的用法

英语基础语法——定语从句1. 有关定语从句的概念(1)定语从句:就是在复合句里充当定语的从句,它通常紧靠在所修饰的名词或代词后面。2)先行词:就是被定语从句修饰的名词或代词。(3)关系词:引导定语从句的词叫关系词。关系词有关系代词who

声明:《NSRange用法及和NSString的关系 关系代词as的用法》为网友爲何我還想他分享!如侵犯到您的合法权益请联系我们删除