字串和可變字串
一、字串的初始化方式
1.不常使用的初始化
方法一
NSString *string = [[NSString alloc] init];
方法二
NSString *string1 = [[NSString alloc] initWithString:string];//初始化同時賦值
示例:NSString *string1 = [[NSString alloc] initWithString:@“鄒賢”];
2.常使用的初始化
方法一
NSString *string = [NSString string];
方法二
NSString *string1 = @“value”;//初始化的同時並賦值
示例:NSString *string1 = @“鄒賢”;
3.字串處理
1)字串的格式化處理
NSString *name = [NSString stringWithFormat:<#(NSString *), …#>];
int age = 18;
NSString *string = [[NSString alloc]initWithFormat:@“%d",age];
2)從哪個位置開始擷取字串(擷取哪一個位置的字串)
NSString *name1 = [name substringFromIndex:<#(NSUInteger)#>];
3)擷取字串到那個位置
NSString *name2 = [name substringToIndex:<#(NSUInteger)#>];
4)擷取字串從哪到哪的值
在開始學習這個知識點以前先讓我們回顧一下結構體的使用方法:
結構體的關鍵字是struct,我們可以把它看成一個整體,它是由不同資料型別組成的一個整體。結構如下:
typedef struct Person {
int age; //定義一個整型型別的年齡
char *name;
}Person;
注意:在結構體裡面我們一般是定義某個類的所有型別,在定義完後是以分號結束,而不是像列舉型別是以逗號結束。
使用方法:
Person peson;//這裡Person是一個型別
peson.age = 20;
peson.name = "大白";
A.結構體是對事物的一個抽象
NSRange range;
A.a:定義range結構體的位置
range.location = 6;//這裡是從字串的第6個位置開始
A.b:在這個位置的基礎之上 繼續數幾個長度
range.length = 5;
NSString *name3 = [name substringWithRange:range]);
擷取字串從到哪新方法
NSString *res = [message substringWithRange:NSMakeRange(6, 5)];
NSLog(@"Chars from index 6 through 5: %@", res);
5)把字串通過指定字元分割成陣列
NSString *result = @"武松打虎 duang!duang!duang! 老虎跑下山 ya~ya~ya~";
NSArray *wordList = [result componentsSeparatedByString:@" "];
//通過快速遍歷把數組裡的內容遍歷出來
for (NSString *obj in wordList) {
NSLog(@"%@", obj);
}
6)英文字母轉換
a. // 把所有英文字母 轉成大寫
NSString *word = @"zouXian";
NSLog(@"%@", word.uppercaseString);
ZOUXIAN
b.// 把所有英文字母 轉成小寫
NSLog(@"%@", word.lowercaseString);
zouxian
c. //把英文字母首字母 轉成大寫
NSLog(@"%@", word.capitalizedString);
Zouxian
7)拼接字串
//拼接字串
NSString *ss = @"我是";
NSString *ss1 = @"好人";
方法一
// 1、stringWithFormat
NSLog(@"%@", [NSString stringWithFormat:@"%@中國%@", ss, ss1]);
我是中國好人
方法二
// 2.stringByAppendingString
NSLog(@"%@", [ss stringByAppendingString:ss1]);
我是好人
方法三
// 3.stringByAppendingFormat
NSLog(@"%@", [ss stringByAppendingFormat:@"%@不止一天兩天三四天", ss1]);
我是好人不止一天兩天三四天
8)查詢字串
// 4.判斷字串 是否包含某個字串
NSString *name = @"上山打老虎跑了";
NSRange range = [name rangeOfString:@“老虎”];
if((range119.location |= NSNotFound)){//通過查詢位置資訊來查詢需要查詢字串的資訊
NSLog(@"%@", name);
}else {
NSLog(@"騙人~~~~");
}
9) a.判斷字串以什麼開始(字串的頭部包含什麼內容)
if ([name hasPrefix:@"上山"] != NO) {
NSLog(@"%hhd", YES);//如果判斷為真,則輸出1
}else{
NSLog(@"%hhd", NO);//如果判斷為假,則輸出0
}
b.字串以什麼結束(字串的尾部包含什麼內容)
if([sss hasSuffix:@"走了"] != NO){
NSLog(@"%hhd", YES);//如果判斷為真,則輸出1
}else{
NSLog(@"%hhd", NO);//如果判斷為假,則輸出0
}
二、可變字串
類名: NSMutableString
1.把指定位置的字串 替換成另一個字串
NSRange range;
range.location = 2;
range.length = 4;
NSMutableString *hero = [[NSMutableString alloc]initWithString:@"我是德瑪西亞"];
[hero replaceCharactersInRange:range withString:@"麥林炮手"];
NSLog(@"%@", hero);
2. 刪除指定長度的字串
range.location = 0;
range.length = 2;
[herodeleteCharactersInRange:range];
NSLog(@"%@", hero);