3Foundation Kit-1 字符串

来源:互联网 发布:十月革命100周年 知乎 编辑:程序博客网 时间:2024/06/06 10:42

首先是OC中一些有用的结构体数据类型:

(1)NSRange

tepedef struct _NSRange{unsigned int location;unsigned int length;}NSRange;
NSRange用来表示一个范围,通常用于字符串里的字符范围或者数组的元素范围。可以直接用C语言结构体的用法进行初始化,推荐用OC自带的NSRange函数进行初始化

NSRange range = NSMakeRange(17,4);
NSMakeRange函数返回一个NSRange结构体,可以作为函数参数等进行传递。

(2)几何数据类型

CGPoint用来定义一个几何点坐标。

struct CGPoint{float x;float y;};


CGSize用来存储长度和宽度,也就是一个矩形范围。

struct CGSize{float width;float height;};
有了位置和大小,可以用上面的两个结构体来在平面内定义一个矩形Rect;

struct CGRect{CGPoint origin;CGSize size;};

对应于NSMakeRange方法,OC也提供了CGPointMake,CGSizeMake,CGRectMake方法来快捷创建这些结构体。

有了这些结构体就可以更好的理解字符串NSString的各种方法。

创建字符串的方法,可以直接用一个OC字符串赋值,也可以使用以下静态方法。

NSString *height=[NSString stringWithFormat:@"this is a %d size string",5]
参数个数不限,类似C语言中的printf函数。

计算字符串大小的函数

-(NSUInteger) length;

使用NSUInteger length=[height length];

字符串比较方法

isEqualToString:返回一个BOOL类型的变量。

compare:方法,返回一个枚举类型变量,有三个值。大、小、相等,具体可以查看XCode。

compare:可以多一个参数就是compare:option:方法,option后的参数用来指定比较方式,取值有有三个,不区分大小写,区分大消息,比较字符串的字符个数,每个选项中间用或“|"连接。具体使用时可以参看函数参数。

查看字符串内是否包含其他字符串的方法,一般是前缀或者后缀。

-(BOOL) hasPrefix: (NSString*) aString;//前缀

-(BOOL) hasSuffix: (NSString*) aString;//后缀

想知道字符串内某处是否包括某字符串的方法,返回NSRange值,未找到则locating的值为NSNotFound;

-(NSRange) rangeOfString: (NSString*) aSring;


可变字符串NSMutableString

用一个大小数字来初始化NSMutableString

-(id) stringWithCapacity: (NSUInteger) capacity;

给可变字符串添加内容的方法。

- (void)appendString: (NSString *) aString;

- (void)  appendFormat:(NSString *) format;

删除字符串的方法。可以利用前面获取Range的方法作为参数删除某一范围的字符-(NSRange) rangeOfString: (NSString*) aSring;

-(void) deleteCharactersInRange: (NSRange) aRange;



0 0