Objective C中的字符串及集合

Objective C中的字符串及集合

一.     NSString字符串

1.    基本概念:

1)  Cocoa中提供NSString和NSMutableString两种字符串,前者用于处理内容不变、固定的字符串,而NSMutableString类用于处理内容可变的字符串;

继承关系:NSObjectàNSStringàNSMutableString

2)  NSString的字符编码格式为Unicode编码;

NSStringEncoding:定义的常量

NSASCIIStringEncoding:  ASCII

NSUTF8StringEncoding;  UTF-8

NSUnicodeStringEncoding; UTF-16

2.    字符串的生成

1)  使用@””标识NSString字符串,如:

NSString  str =@”yang”;

2)  但使用上述方式只能生成含有英文和数字的NSString实例,要生成含有汉子等双字节的字符串实例,必须使用:

+ (id)stringWithCString:(const char *)cString encoding:(NSStringEncoding)enc

 

-   (id)initWithCString:(const char *)nullTerminatedCString encoding:(NSStringEncoding)encoding

第一个方法创建自动释放型的实例。后一个方法是执行alloc方法后进行初始化的;

3)  使用格式创建字符串:

+ (id)stringWithFormat:(NSString *)format, ...

-   (id)initWithFormat:(NSString *)format ...

 格式本身是NSString串,因此加上@,如果里面有NSString字符串实例,用%@标识;

NSString str =[NSString stringWithFormat:@“%@pro”,str1];

4)  NSRange用于定义一个数据的范围

NSRangerange = NSMakeRange(0,5);

3.    字符串处理

1)  字符串长度:- (NSUInteger)length

2)  取字符串某个位置的字符

- (unichar)characterAtIndex:(NSUInteger)index

3)  拼接字符串:

-(NSString *)stringByAppendingString: (NSString*)aString

-(NSString *)stringByAppendingFormat: (NSString*)format...

例:str2 = [str stringByAppendingString:@”%@%@”,str3,str4];

4)  求子字符串:

-   (NSString *)substringFromIndex:(NSUInteger)anIndex

-   (NSString *)substringToIndex:(NSUInteger)anIndex

-   (NSString *)substringWithRange:(NSRange)aRange

5)  比较字符串大小:

- (BOOL)isEqualToString:(NSString *)aString

6)  比较前置和后置串:

-   (BOOL)hasPrefix:(NSString *)aString

-   (BOOL)hasSuffix:(NSString *)aString

7)  字符串检索:

- (NSRange)rangeOfString:(NSString*)aString

8)   

二.     NSMutableString字符串

1.    生成

生成方法与NSString相同,但是不能使用@的方法生成NSMutable字符串;

NSString:

+(id)string;//生成一个空字符串

2.    追加字符串

-   (void)appendString:(NSString*)aString

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

3.    插入字符串

- (void)insertString:(NSString*)aString atIndex:(NSUInteger)anIndex

4.    删除字符串

-   (void)deleteCharactersInRange:(NSRange)aRange

5.字符串可以进行文件的读写;

集合部分

            cocoa中,数组、字典以及 集合部分都分可变和不可变两种;

      可变的可以增加、删除和修改里面的数据,不可变的则不能;

三.     NSObject àNSArray àNSMutableArray

在Objective C中也可以使用C语言的数组,如:NSString* names[6];

但是不方便,要使用NSArray数组,数组必须是Cocoa的对象。因此int,char这些数据类型不能直接包括在内(包装类可以实现)

1)  初始化:

指定一个对象初始化:

+ (id)arrayWithObject:(id)anObject

 

NSArray*array = [NSArray arrayWithObject:string];

2)  多个对象进行初始化

-   (id)initWithObjects:(id)firstObj, ...

+(id)arrayWithObjects:(id)firstObj, ...

array= [NSArrayarrayWithObjects:@”tom”,@”yang”,@”blacks”,nil];

指定了多个对象后,最后一个参数必须指定为nil,否则出错;

3) 数组长度: - (NSUInteger)count

4)  通过索引获得对象:

-   (id)objectAtIndex:(NSUInteger)index

在NSArray中,也可以通过索引来获取元素,但是不能使用C语言中括号中指定索引的方法,必须使用上面的方法;

5) 获取某个元素的索引位置:

- (NSUInteger)indexOfObject:(id)anObject

四.     NSMutableArray

NSMutableArray是NSArray的子类,父类的所有方法子类都可以用。

1)  其他的初始化方法:

-(id) initWithCapacity:(NSUInteger) numItems

+(id) arrayWithCapacity:(NSUInteger) numItems

+ (id)array;//创建内容为空的数组;

2)  添加对象

-   (void)addObject:(id)anObject

//

-   (void)addObjectsFromArray:(NSArray*)otherArray

//

-   (void)setArray:(NSArray*)otherArray

//

-   (void)insertObject:(id)anObject atIndex:(NSUInteger)index

3)  对象的删除

-   (void)removeObject:(id)anObject

4)  更改某个位置的对象:

-(void) replaceObjectAtIndex:(NSUInteger) indexwithObject:(id) object

五.     字典

用key-value形式存储数据;

1)  初始化

1.    指定一个键值对初始化NSDictionary

+ (id)dictionaryWithObject:(id)anObject forKey:(id < NSCopying>)aKey

dic= [NSDictionary dictionaryWithObject:@”Inter i5” forKey:@”CPU”];

2.    指定多个键值对初始化NSDictionary,两个数组或多个键值对

+ (id)dictionaryWithObjects:(NSArray*)objects forKeys:(NSArray*)keys

+ (id)dictionaryWithObjectsAndKeys:(id)firstObject ,...

2)  获取字典中键值对的个数

-(NSUInteger) count;

3)  获取所有的key和值

-(NSArray*)allvalues;

-(NSArray*) allkeys;

4)  从key值得到value值

-(id) objectForkey: (id)key

六.     NSMutableDictionary

1)  生成空字典

NSDictionary +(id)dictionary;

2)  追加键值对

NSMutableDictionary

-(void)setObject:(id)key forKey: (id)key;

3)  删除键值对

-(void)removeObjectForkey: (id)key;

七.     NSSet,NSMutableSet

Set是无序集合,其他跟array和dictionary类似;

1)  向Array,Dictionary,Set中添加元素,会主动持有他的所有权;

2)  删除元素时,会释放其所有权;

八.     快速枚举

for …in语法

for(Type variable in expression){

statements }

数组的快速枚举

for(NSString *element in array){

NSLog(@”%@”,element);

}

字典的快速枚举

for(NSString *key in dictionary){

NSLog(@”english:%@ number:%@”, [dictionaryobjectForKey:key],key);

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值