2015.12.23 OC中的字符串(NSStringNSMutableString) 数组(NSArrayNSMutableArray)
字符串(NSString&NSMutableString)?
在OC中的字符串可分為兩種:不可變字符串(NSString)和不可變字符串(NSMutableString)。從字面上就可以理解這兩種字符串的區(qū)別。
▲不可變字符串(NSString)
1.創(chuàng)建
①靜態(tài)
NSString *str = @"Hello World!";
②用alloc創(chuàng)建空字符串對象?(對象方法『-』)
NSString *str = [[[NSString alloc] init] autorelease];
③用alloc創(chuàng)建有初始值的字符串對象 (對象方法『-』)
NSString *str = [[[NSString alloc] initWithString: @"Hello World!"] autorelease];
④不需要自己控制內(nèi)存(工廠方法、便利器方法) (類方法『+』)
NSString *str = [NSString stringWithString:@"Hello World!"];
⑤字符串按一定格式『拼接』,這個的用法很像『NSLog』.
int age = 20, height = 170;
NSString *str = [NSString stringWithFormat:@"age=%d height=%d", age, height];
2.獲取字符串長度 length
NSUInteger length = str.length;(NSUInteger length = strlen(str);)
3.獲取子字符串
①substringFromIndex; 從哪個索引值開始獲取
②substringToIndex; 一直獲取到哪個索引值
③substringWithRange; 從哪個索引值開始獲取多長的字符串
typedef struct _NSRange {
? ? NSUInteger location;
? ? NSUInteger length;
} NSRange;
因為NSRange是一個結(jié)構(gòu)體,所以在定義這個類型變量的時候不用指針(*)。
eg:NSRange range = NSMakeRange(4, 8);
4.字符串的比較
①isEqualToString:
②compare:
typedef enum{
NSOrderedAscending = -1, 『上升』前者比后者小
NSOrderedSame,
NSOrderedDescending ?『下降』前者比后者大
}NSComparisonResult;
5.查找字符串
①hasPrefix: 在第一個查找
②hasSuffix: 在最后一個查找
③rangeOfString: ?在中間查找
6.字符串轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)類型
①intValue 轉(zhuǎn)化為整型,這里需要注意的是,轉(zhuǎn)化的字符串只能為整型。如果在整型前面有字符串,則轉(zhuǎn)化完的值為0;轉(zhuǎn)化的值后面(空格隔開)則不進(jìn)行轉(zhuǎn)化。
②floatValue
③doubleValue
④boolValue
eg:NSString *numStr = @"12.3";
int num = [numStr intValue];
?
?
▲可變字符串(NSMutableString)
@interface NSMutableString : NSString{ (說明NSMutableString是繼承NSString的)
}
1.創(chuàng)建可變字符串
NSMutableString *mStr = [NSMutableString stringWithCapacity:0]; 暫時分配0個空間,當(dāng)空間不夠是自動追加
NSMutableString *mStr = [[NSSMutableString alloc] initWithCapacity:0];
2.追加字符串
[mStr appendString:@"追加內(nèi)容"];
[mStr appendString:@"我要追加%d個內(nèi)容", num];
3.插入字符串
[mStr insertString:@"1", atIndex:2];
[mStr insertString:@"1", atIndex:mStr.length]; 在mStr末尾插入?
4.字符串的替換
NSRange range = [mStr rangOfString:@"需要被替換的內(nèi)容"];
[mStr replaceCharactersInRange:range withString:@"需要替換的內(nèi)容"]; 這里的range和上面是一樣的
5.刪除一個字符串
[mStr deleteCharactersInRange:range];
6.重新設(shè)置字符串的內(nèi)容
[mStr setString:@"重新設(shè)置的內(nèi)容"];
?數(shù)組(NSArray&NSMutableArray)?
▲不可變數(shù)組(NSArray)
C語言中的數(shù)組只能存放同一種基本數(shù)據(jù)類型,而OC中的數(shù)組可以存放多種數(shù)據(jù)類型(但是必須是對象類型,不能存放基本數(shù)據(jù)類型)。
注意:我們在實際編程過程中,應(yīng)盡量在一個數(shù)組里存放同一種數(shù)據(jù)類型
#import "Person.h"
Person *xiaowang = [[[Person alloc] init] autorelease];
Person *zhangsan = [[[Person alloc] init] autorelease];
1.創(chuàng)建一個數(shù)組
①NSArray *array = @[@"xiaoming", xiaowang, zhangsan];
NSArray *array_1 = @[array, @"xml", @"xmh"];
②NSArray *array_2 = [NSArray array];
NSArray *array_3 = [[NSArray alloc] init];
③NSArray *array_4 = [NSArray arrayWithArray:array];
NSArray *array_5 = [[NSArray alloc] initWithArray:array]; (冒號后面的『array』就是@[@"xiaoming", xiaowang, zhangsan])
④創(chuàng)建的時候初始化一部分?jǐn)?shù)據(jù)
NSArray *array_6 = [NSArray arrayWithObject:xiaowang];
數(shù)組結(jié)尾為nil,不能向數(shù)組里面添加一個值為nil的對象
NSArray *array_7 = [NSArray arrayWithObjects:xiaoming, zhangsan, nil];
2.獲取數(shù)組元素的個數(shù) count
NSLog(@"The count of the array is %ld.", [array count]);
3.獲取相應(yīng)位置的元素(對象)
Person *temp = [array_7 objectAtIndex:0];
Person *temp_1 = [array_7 lastObject]; 獲取最后一個對象
Person *temp_2 = [array_7 firstObject]; 獲取第一個對象
4.遍歷數(shù)組
①正常方法,需要記錄位置時用
for (int i = 0; i < array_7.count; i ++){
NSLog(@"%@", [array arrayAtIndex:i]);
}
②快速循環(huán),不需要記錄位置時用,一般常用的為這個
for (Person *temp in array_7){
NSLog(@"%@", temp)
}
5.判斷一個數(shù)組是否包含一個對象
if ([array containsObject:@"asdfds"]){
NSLog(@"YES");
} else{
NSLog(@"NO");
}
6.獲取某個對象在數(shù)組中的索引值
NSUInteger index = [array_7 indexOfObject:@"asdfds"]; 當(dāng)數(shù)組中沒有這樣一個對象的時候,返回的將是一個極大的值?
?
?
▲可變數(shù)組(NSMutableArray) 同樣是繼承于『NSArray』
1.創(chuàng)建可變數(shù)組
NSMutable *mArray = [NSMutable arrayWithCapacity:3];
2.增加對象
[mArray addObject:xiaoming];
3.插入對象
[mArray insetObject:array_4 atIndex:1];
4.刪除對象
①[mArray removeObject:xiaoming];
②[mArray removeObjectAtIndex:3];
③刪除所有對象
[mArray removeAllObjects];
5.交換對象的位置
[mArray exchangeObjectAtIndex:0 withObjectAtIndex:1];
轉(zhuǎn)載于:https://www.cnblogs.com/immustard/p/5070248.html
總結(jié)
以上是生活随笔為你收集整理的2015.12.23 OC中的字符串(NSStringNSMutableString) 数组(NSArrayNSMutableArray)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js获取checkbox多选表单
- 下一篇: 线程函数