1.NSString的介紹編程
2.NSString的初始化api
NSString *str = @"我是一個字符串";
這是一個常量字符串,值不能修改。數組
第一種方式:框架
NSString *str1 = [NSString StringWithFormat:@"這是一個拼接字符串"];
第二種方式:this
int age = 20; NSString *str1 = @"我今年"; NSString *str2 = @"歲了"; NSString *str2 = [NSString stringWithFormat:@"%@%d%@",str1,age,str2];
能夠拼接接多個參數spa
char *s = "c字符串轉換"; NSString *str = [NSString stringWithUTF8String:s]; NSLog(@"%@",str);
直接printf("%s",s)是不支持的。code
3.NSString字符串的比較orm
兩個字符串的內容相同就返回YES, 不然返回NO :isEqualToString對象
NSString *str1 = @"this is b string"; NSString *str2 = @"this is a string"; BOOL isSame = [str1 isEqualToString:str2]; NSLog(@"isSame - %d",isSame);
比較兩個字符串內容的大小 :compare繼承
NSString *str1 = @"this is b string"; NSString *str2 = @"this is a string"; NSLog(@"compare - %ld",(long)[str1 compare:str2]);
字符串的比較是依次比較每一個字符的ASCII值,只要有一個字符比較出結果就中止比較;返回(NSComparisonResult)做爲比較結果 ;NSComparisonResult是一個枚舉,只有三個值,若是左邊<右邊,返回-1;若是左邊>右邊,返回1;若是相等,返回0。
字符串忽略大小寫的比較:caseInsensitiveCompare
NSString *str1 = @"this is b string"; NSString *str2 = @"this is B string"; NSLog(@"compare - %ld",(long)[str1 caseInsensitiveCompare:str2]);
因爲忽略大小寫,因此返回值爲0,str1和str2相同。
4.NSString大小寫處理
NSString *str1 = @"abcdefgh"; NSString *str2 = [str1 uppercaseString];
uppercaseString - 是把小寫變大寫,返回的是一個新的字符串
大寫變小寫:lowercaseString
NSString *str1 = @"ABCDEFG"; NSString *str2 = [str1 lowercaseString];
capitalizedString - 是把大寫變小寫,返回的也是一個新的字符串
首字母變大寫,其餘字母變小寫:capitalizedString
NSString *str1 = @"thisIFSsbstring"; NSString *str2 = [str1 capitalizedString]; NSLog(@"%@",str2);
輸出結果:Thisifssbstring。返回的一樣是一個新的字符串。
5.NSString先後綴檢查及搜索
NSString *str1 = @"www.baidu.com"; BOOL isPre = [str1 hasPrefix:@"www.baidu"]; NSLog(@"is - %d",isPre);
檢查前綴是不是www.baidu,若是是,返回1,不然返回0
檢查後綴是不是XXX:hasSuffix
NSString *str1 = @"www.baidu.com"; BOOL isSuf = [str1 hasSuffix:@".com"]; NSLog(@"is - %d",isSuf);
檢查後綴是不是.com,若是是,返回1,不然返回0
NSString *str = @"www.baidu.com"; NSRange rang = [str1 rangeOfString:@"com"]; NSLog(@"loc - %ld,len - %ld",rang2.location,rang2.length);
rangeOfString - 查找具體字符串的位置和長度
6.字符串的截取和替換
NSString *str1 = @"我在編程道路上匍匐前行"; NSString *str2 = [str1 substringFromIndex:4]; NSLog(@"str2 - %@",str2);
輸出結果:道路上匍匐前行
從首位截取到指定位置:substringToIndex
NSString *str1 = @"我在編程道路上匍匐前行"; NSString *str2 = [str1 substringToIndex:7]; NSLog(@"str2 - %@",str2);
輸出結果:我在編程道路上
按照所給的NSRange從字符串中截取:substringWithRange
NSString *str1 = @"我在編程道路上匍匐前進"; //建立NSRange NSRange rang = NSMakeRange(4, 5); //4表示位置,5表示長度 NSString *str2 = [str1 substringWithRange:rang]; NSLog(@"str2 - %@",str2);
NSRange是Foundation框架中比較經常使用的結構體, 定義了兩個屬性location(位置)和length(長度);NSRange用來表示事物的一個範圍,一般是字符串裏的字符範圍或者數組 裏的元素範圍。
NSString字符串的替換:stringByReplacingOccurrencesOfString
NSString *str1 = @"www.baidu.com"; NSString *str2 = [str4 stringByReplacingOccurrencesOfString:@"baidu" withString:@"SIS"]; NSLog(@"str2 - %@",str2);
輸出結果:www.SIS.com
7.NSString的其餘用法
NSString *str = @"前進前進前進112412"; NSLog(@"str - %lu",(unsigned long)[str length]);
輸出結果:12
得到具體位置的字符:characterAtIndex
str = @"0123asd"; char a = [str characterAtIndex:0]; //經過字符遍歷整個字符串 for (int i = 0; i < [str length]; i++) { NSLog(@"i - %c",[str characterAtIndex:i]); }
若是字符串中有漢字,得到的字符是亂碼
字符串和其餘數據類型的轉換:
//字符串類型轉int型 NSString *str2 = @"233"; NSLog(@"str2 - int - %d",str2.intValue); //字符串類型轉double型 NSString *str2 = @"233.342423"; NSLog(@"str2 - int - %lf",str2.doubleValue); //字符串類型轉double型 NSString *str2 = @"233.342423"; NSLog(@"str2 - int - %f",str2.floatValue);