撿起去年學習的iOS,從基礎開始,一步一步,完成它!
一、iOS之NSString
NSString主要是針對字符串的一套用法,主要功能有:
(1)字符串顯示(直接顯示,間接顯示)
(2)字符串截取,拼接,替換,比較,分割,遍歷,轉換
1.字符串顯示
//初始化
//方法一:
NSString *astring= @"how are you";
NSLog(@"astring %@ ",astring);
NSLog(@"astring %@ %@",@"hi",astring);
//可變字符串創建:
NSMutableString *mstr1 = [[NSMutableString alloc] initWithFormat:@"zxcvbnm"];
NSMutableString *mstr2 = [NSMutableString stringWithFormat:@"asdfghjkl"];
[mstr1 insertString:@"1111" atIndex:1];//從第一個位置插入
NSLog(@"ms1 :%@",mstr1);//ms1 :z1111xcvbnm
// 設置新的字符串
[mstr3 setString:@"000000000"];
NSLog(@"new_mstr3:%@",mstr3);
//方法二:
//NSString * str =[[NSString alloc] initWithString:@"this is from initWithString function"];系統會顯示此方法多餘,改爲第一種方法
//三、實例化
//1、initWithFormat是實例方法,只能通過一下方法調用,但是必須手動release來釋放內存資源
NSString* str = [[NSString alloc] initWithFormat:@"%@",@"Hello World"];
//2、stringWithFormat是類方法,可以直接用調用以下方法,內存管理上是autorelease的,不用手動顯式release
NSString* str = [NSString stringWithFormat:@"%@",@"Hello World"];
2.字符串截取
NSString *str1 = @"1234567";
NSLog(@"長度: %ld",str1.length);//(長度: 7)
NSLog(@"字符串對應下標:%c",[str1 characterAtIndex:2]);//(字符串對應下標: 3)
//截取指定位置的字符串(substringFromIndex:a)從a開始到字符串結束
NSLog(@"%@",[str1 substringFromIndex:2]);//(34567)
//從0開始截取到指定位置字符串(substringToIndex:a)從0開始到a結束,不包括a
NSLog(@"%@",[str1 substringToIndex:2]);//(12)
//截取指定範圍字符串(NSMakeRange(a,b)從字符串左邊數的a開始,到字符串從右邊數的b結束)包括a,b
NSLog(@"%@",[str1 substringWithRange:NSMakeRange(2, 2)]);//(345)
3.字符串拼接
NSString *str3 = @"a";
NSString *str4 = [str3 stringByAppendingString:@"5"];
NSLog(@"%@",str4);//a5
NSString *str5 = [str4 stringByAppendingPathComponent:@"De"];
NSLog(@"%@",str5);//a5/De
NSString *str12 = [[NSString alloc] initWithFormat:@"%@%@",str10,str11];
NSLog(@"str12 :%@",str12);//str12 :aa5
4.字符串替換
NSString *str6 = @"哈哈,瞅你咋地";
//直接替換
NSString *str7 = [str6 stringByReplacingOccurrencesOfString:@"哈哈" withString:@"嘿嘿"];
NSLog(@"%@",str7);//嘿嘿,瞅你咋地
NSString *str8 = @"你在幹嘛呢";
//範圍替換stringByReplacingCharactersInRange:NSMakeRange(1, 3)從第1個字符到第3個字符(包括)替換
NSString *str9 = [str8 stringByReplacingCharactersInRange:NSMakeRange(1, 3) withString:@"不累"];
NSLog(@"%@",str9);//你不累呢
5.字符串比較
NSString *str11 = @"1";
NSString *str10 = @"123";
//判斷字符串是否以abc開頭
BOOL flag = [str10 hasPrefix:@"abc"];
NSLog(@"%zd",flag);//0
//判斷字符串是否以3結尾
BOOL flag1 = [str10 hasSuffix:@"3"];
NSLog(@"%zd",flag1);//1
//str10是否包含str11
NSLog(@"%d",[str10 containsString:str11]);//1
//升降序比較
NSString *str1 = @"abcd";
NSString *str2 = @"ABCD";
NSComparisonResult result = [str1 compare:str2];
// caseInsensitiveCompare 忽略大小寫比較
// NSComparisonResult result2 = [s7 caseInsensitiveCompare:s8];
if (result == NSOrderedAscending) {
NSLog(@"升序");
} else if(result == NSOrderedSame) {
NSLog(@"相同");
} else if(result == NSOrderedDescending) {
NSLog(@"降序");
}
6.字符串分割
NSString *str12 = @"我,是,誰,我,在,哪";
NSArray *array = [str12 componentsSeparatedByString:@","];
for (NSString *str in array) {
NSLog(@"%@",str);
}
//取出字符串"123|456|789|000"中的數字部分,組成一個新的字符串輸出
NSMutableString *strm = [NSMutableString stringWithString:@"123|456|789|000"];//只有可變字符串有這個方法
[strm replaceOccurrencesOfString:@"|" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, strm.length)];
NSLog(@"%@",strm);//123456789000
7.字符串遍歷
NSString *str13 = @"abc\n ddef \n 123";
//根據\n一行一行的返回
[str13 enumerateLinesUsingBlock:^(NSString * _Nonnull line, BOOL * _Nonnull stop) {
NSLog(@"line:%@",line);
/*返回結果:
line:abc
line: ddef
line: 123
*/
}];
//用指定字符串分割字符串,返回一個數組
NSString *str14 = @"1,2,3,4,5,6";
NSArray *array1 = [str14 componentsSeparatedByString:@","];
NSLog(@"array1:%@ %zd",array1,array1.count);
/*返回結果:
array1:(
1,
2,
3,
4,
5,
6
) 6
*/
}
8.字符串轉換
//1.大小寫轉換
NSString *str15 = @"aABBCCbbaacc1234";
NSLog(@"大寫:%@",[str15 uppercaseString]);//大寫:AABBCCBBAACC1234
NSLog(@"小寫:%@",[str15 lowercaseString]);//小寫:aabbccbbaacc1234
NSLog(@"首字母變大寫,其他爲小寫:%@",[str15 capitalizedString]);//首字母變大寫,其他爲小寫:Aabbccbbaacc1234
//2.轉爲基本數據類型,只能是數字字符串可以轉化
NSString *str9 = @"1234";
int value1 = [str9 intValue];
float value2 = [str9 floatValue];
double value3 = [str9 doubleValue];
BOOL value4 = [str9 boolValue];
NSLog(@"value1 = %d",value1);//value1 = 1234
NSLog(@"value2 = %f",value2);//value2 = 1234.000000
NSLog(@"value3 = %lf",value3);//value3 = 1234.000000
NSLog(@"value4 = %d",value4);//value4 = 1