NSString類型html
1.initWithFormat
ios
- (instancetype)initWithFormat:(NSString *)formatapi
用於返回一個帶有格式控制符的字符串,格式控制符裏的內容被替代.
數組
例子:app
int n = 17;CGFloat m = 99.9; iphone
//str 是一個地址, 內容存放於堆區ide
NSString * str = [[NSString alloc]initWithFormat:@"藍鷗%d班的平均成績是:%.2f",n, m ];函數
NSLog(@"%@", str);NSLog(@"%p", str);編碼
輸出結果:藍鷗17班的平均成績是:99.90spa
2.stringWithFormat
+ (instancetype)stringWithFormat:(NSString *)format
例子:
NSString * string = [NSString stringWithFormat:@"%d班教室共%d人", 17, 38];
NSLog(@"%@", string);
結果:17班教室共38人
這個函數出現的頻率很高 ,是一個類方法,返回一個帶有格式控制符的字符串
+ stringWithFormat:
類方法,返回一個autorelease的NSString實例,不用手動Release,在自動釋放池中會自動釋放。
initWithFormat:
實例方法,返回一個本身Alloc申請內存的NSString實例,根據OC內存管理黃金法則,管殺管埋,它則須要本身手動Release。
3.length
求一個字符串的長度, 返回值是NSUInteger
例子:
NSString * str = @"河南17班";
NSUInteger len = [str length];
NSLog(@"%lu", len);
打印結果:5
4.stringByAppendingString
- (NSString *)stringByAppendingString:(NSString *)aString
將兩個字符串拼接,並返回一個新字符串;
例子:
NSString * str1 = @"河南";
NSString * str2 = @"藍鷗科技";
NSString * newstr = [str1 stringByAppendingString:str2];
NSLog(@"newstr = %@", newstr);
打印結果:
newstr = 河南藍鷗科技
5.stringByAppendingFormat
- (NSString *)stringByAppendingFormat:(NSString *)format
將原有字符串與給定的字符串拼接,給定字符串帶有格式控制符,返回一個新的字符串
例子:
int n = 17;
NSString * str = @"藍鷗";
NSString * newstr = [str stringByAppendingFormat:@"河南%d班",n];
NSLog(@"%@", newstr);
打印結果:
藍鷗河南17班
6.substringFromIndex
- (NSString *)substringFromIndex:(NSUInteger)anIndex
從某個位置開始到結束,求子串兒,返回一個新的字符串
例子:
NSString * str = @"lanoukeji";
NSString * getstr = [str substringFromIndex:1];
NSLog(@"%@", getstr);
打印結果:
anoukeji
7.substringToIndex
- (NSString *)substringToIndex:(NSUInteger)anIndex
從開始到某個位置(不包括該位置),求子串兒,返回一個新字符串.
例子:
NSString * str = @"lanoukeji";
NSString * newstr = [str substringToIndex:2];
NSLog(@"%@", newstr);
打印結果:la
8.substringWithRange
- (NSString *)substringWithRange:(NSRange)aRange
根據給的範圍,從原字符串取子串,並返回一個新的字符串
NSString * str = @"lanoukeji";
NSRange range = {1,7}; //定義NSRange結構體
NSString * newstr = [str substringWithRange:range];
NSString * newstr1 = [str substringWithRange:NSMakeRange(1, 8)];
NSLog(@"%@", newstr1);
NSLog(@"%@", newstr);
打印結果:
anoukeji
anoukej
9.componentsSeparatedByString
- (NSArray *)componentsSeparatedByString:(NSString *)separator
//根據傳入的字符串把原串分割成幾部分,返回一個數組
例子:
NSString * str = @"WWW.baidu.com.www.sohu.com";
NSArray * substring = [str componentsSeparatedByString:@"."];
NSLog(@"%@", substring);
打印結果:
(
WWW,
baidu,
com,
www,
sohu,
com
)
10.rangeOfString
- (NSRange)rangeOfString:(NSString *)aString
求字串在原串的範圍,並返回一個NSRange類型的結構體(起始位置,長度)
例子:
NSString * str = @"lanoukejilanou";
NSRange range = [str rangeOfString:@"lanou"];
NSLog(@"%ld,%ld", range.location,range.length);
打印結果:
0,5
11.stringByReplacingOccurrencesOfString
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)targetwithString:(NSString *)replacement
會將原串裏的全部出現某字符串替換成新串,返回一個新字符串
例子:
NSString * str = @"你是個人小呀小蘋果!";
NSString * newstr = [str stringByReplacingOccurrencesOfString:@"小" withString:@"大"];
NSLog(@"%@", newstr);
打印結果:
你是個人大呀大蘋果!
12.hasPrefix:
- (BOOL)hasPrefix:(NSString *)aString
判斷原字符串首部和給的字符串是否一致,返回一個BOOL值
例子:
NSString * str = @"http://www.baidu.com";
NSString * str1 = @"htp://";
BOOL a = [str hasPrefix:str1];
NSLog(@"%@",a ? @"YES" : @"NO");
打印結果:
NO
13.hasSuffix:
- (BOOL)hasSuffix:(NSString *)aString
判斷原字符串的末尾和給的字符串是否一致,返回一個BOOL值
NSString * str = @"http://www.baidu.com";
NSString * str1 = @".com";
BOOL a = [str hasSuffix:str1];
NSLog(@"%@", a ? @"YES" : @"NO");
打印結果:YES
14.isEqualToString
- (BOOL)isEqualToString:(NSString *)aString
比較兩個字符串是否相等,返回一個BOOL值
例子;
NSString * str = @"呵呵呵";
NSString * str1 = @"呵呵";
if ([str isEqualToString:str1]) {
NSLog(@"相等");
}
else NSLog(@"不相等");
打印結果:不相等
15.lowercaseString
例子:
NSString * str = @"DSADasdAS";
//返回一個新字符串 ,將全部的大寫變成小寫
NSString * newstr = [str lowercaseString];
NSLog(@"%@", newstr);
//uppercaseString 變成大寫
NSString * newstr1 = [str uppercaseString];
NSLog(@"%@", newstr1);
//capitalizedString 將一段話每一個單詞的首字母變成大寫
NSString * str3 = @"i love iphone ios";
NSString * newstr2 = [str3 capitalizedString];
NSLog(@"%@", newstr2);
打印結果:
dsadasdas
DSADASDAS
I Love Iphone Ios
16.integerValue
字符串轉成基本類型
例子:
NSString * str1 = @"22";
NSString * str2 = @"11";
NSInteger num = [str1 integerValue] + [str2 integerValue];
NSLog(@"%ld", num);
NSString * str3 = @"1.2";
NSString * str4 = @"2.3";
float a = [str3 floatValue] + [str4 floatValue];
NSLog(@"%.2f", a);
BOOL b = [str1 boolValue];
NSLog(@"%@", b ? @"YES" : @"NO");
打印結果:
2015-01-14 21:48:19.189 OC 一月14號[3233:303] 33
2015-01-14 21:48:19.192 OC 一月14號[3233:303] 3.50
2015-01-14 21:48:19.192 OC 一月14號[3233:303] YES
NSMutableString 類型(繼承自NSString)
建立一個能夠修改內容的字符串(存放於堆區)
17.appendString
在原字符串中拼接
NSMutableString * string = [NSMutableString stringWithFormat:@"藍鷗"];
[string appendString:@"科技"];
NSLog(@"%@", string);
打印結果:藍鷗科技
18.deleteCharactersInRange:
- (void)deleteCharactersInRange:(NSRange)aRange
刪除原字符串裏的內容
[string deleteCharactersInRange:NSMakeRange(1, 1)];
NSLog(@"%@", string);
打印結果:藍科技
19.insertString:atIndex:
- (void)insertString:(NSString *)aStringatIndex:(NSUInteger)anIndex
在原字符串指定下標開始添加內容
[string insertString:@"鷗" atIndex:1];
NSLog(@"%@", string);
打印結果:藍鷗科技
20.replaceCharactersInRange:
- (void)replaceCharactersInRange:(NSRange)aRangewithString:(NSString *)aString
將原字符串裏指定下標開始,將n個字節替換成給的字符串
NSMutableString * string1 = [NSMutableString stringWithFormat:@"文藝青年"];
[string1 replaceCharactersInRange:NSMakeRange(0, 2) withString:@"213"];
NSLog(@"%@", string1);
打印結果:
213青年
21.setString:
將原字符串的內容設爲..
[string1 setString:@"$$$"];
NSLog(@"%@", string1);
打印結果:$$$
22.compare:
- (NSComparisonResult)compare:(NSString *)aString
字符串比較 返回值若爲-1是升序,1是降序
NSString * str1 = @"abc";
NSString * str2 = @"abd";
NSComparisonResult result = [str1 compare:str2];
NSLog(@"%ld", result);
打印結果:-1
NSArray特色
1. 數組裏只能存對象
2. 經過下標來索引數據
3. 有序集和
NSArray類型
23.initWithObjects:
建立一個數組,並將對象傳入進去, nil用來標記字符串結束
NSArray * array = [[NSArray alloc] initWithObjects:@"A",@"B",@"C",@"D", nil];
NSLog(@"%@", array);
類方法 arrayWithObjects
NSArray * array1 = [NSArray arrayWithObjects:@"張三",@"李四",@"王五", nil];
NSLog(@"%@", array1);
打印結果:
2015-01-14 22:16:12.364 OC 一月14號[3282:303] (
A,
B,
C,
D
)
2015-01-14 22:16:12.409 OC 一月14號[3282:303] (
"\U5f20\U4e09",
"\U674e\U56db",
"\U738b\U4e94"
)
漢字顯示的是編碼
24.objectAtIndex:
- (id)objectAtIndex:(NSUInteger)index
根據下標找出數組中對應的元素
例子;
NSArray * array = [NSArray arrayWithObjects:@"01", @"水電費", @"11", nil];
NSArray * str = [array objectAtIndex:1];
NSLog(@"%@", str);
打印結果:水電費
//****************************重寫description********************************
//重寫從父類繼承過來的description 方法,這個方法用於使用%@打印
//返回什麼樣的字符串,使用%@打印該類對象,就會打出來什麼內容
//***********************************************************************************//
- (NSString *)description
{
return [NSString stringWithFormat:@"%@ %@ %ld", _name ,_sex, _age];
}
Person * person = [[Person alloc]initWithName:@"張三" sex:@"男" age:20];
Person * person1 = [[Person alloc]initWithName:@"李四" sex:@"男" age:20];
Person * person2 = [[Person alloc]initWithName:@"王六" sex:@"女" age:20];
// NSLog(@"%@,%@,%@", person, person1, person2);
NSArray * array = [NSArray arrayWithObjects:person,person1, person2, nil];
NSLog(@"%@", array);
Person * per = [array objectAtIndex:1];
NSLog(@"%@", per);
//25.得到數組元素的個數
NSUInteger count = [array count];
NSLog(@"%lu", count);
// 分別將數組裏的元素()打印出來
for (int i = 0; i < [array count]; i++) {
Person * p = [array objectAtIndex:i];
NSLog(@"%@", p);
//等價於 NSLog(@"%@", [array objectAtIndex:i]);
}
//26.取出第一個或最後個一元素 firstObject
NSLog(@"%@", [array firstObject]);
NSLog(@"%@", [array lastObject]);
//containsObject:
Person * p = [[Person alloc]initWithName:@"張三" sex:@"男" age:20];
// 27. 判斷一個對象是否在數組裏, 後面跟具體對象,前面跟數組名 containsObject
NSLog(@"%@", [array containsObject:person] ? @"YES" : @"NO");
NSLog(@"%@", [array containsObject:p] ? @"YES" : @"NO");
//28.找到一個對象在數組裏的下標
//indexOfObject:
NSLog(@"%ld", [array indexOfObject:person1]);
//2判斷數組是否相等(對象,順序)
//isEqualToArray:
Person * p1 = [[Person alloc]initWithName:@"張三" sex:@"男" age:70];
Person * p2 = [[Person alloc]initWithName:@"李四" sex:@"男" age:20];
Person * p3 = [[Person alloc]initWithName:@"王六" sex:@"女" age:20];
NSArray * array1 = [NSArray arrayWithObjects:p1,p2,p3, nil];
NSArray * array2 = [NSArray arrayWithObjects:p1,p3,p2, nil];
NSLog(@"兩個數組是否相等%@", [array1 isEqualToArray:array2] ? @"YES" : @"NO");
打印結果:
2015-01-14 22:25:08.772 OC 一月14號[3315:303] (
"\U5f20\U4e09 \U7537 20",
"\U674e\U56db \U7537 20",
"\U738b\U516d \U5973 20"
)
2015-01-14 22:25:08.774 OC 一月14號[3315:303] 李四 男 20
2015-01-14 22:25:08.775 OC 一月14號[3315:303] 3
2015-01-14 22:25:08.775 OC 一月14號[3315:303] 張三 男 20
2015-01-14 22:25:08.775 OC 一月14號[3315:303] 李四 男 20
2015-01-14 22:25:08.776 OC 一月14號[3315:303] 王六 女 20
2015-01-14 22:25:08.776 OC 一月14號[3315:303] 張三 男 20
2015-01-14 22:25:08.777 OC 一月14號[3315:303] 王六 女 20
2015-01-14 22:25:08.777 OC 一月14號[3315:303] YES
2015-01-14 22:25:08.777 OC 一月14號[3315:303] NO
2015-01-14 22:25:08.778 OC 一月14號[3315:303] 1
2015-01-14 22:25:08.778 OC 一月14號[3315:303] 兩個數組是否相等NO