Objective-C 【NSString 的其他常見用法】,objectivecnsstring
———————————————————————————————————————————
NSString 的其他常見用法
// NSString 長度、擷取字串中的每個字元、類型轉換、去除前後空格等
#import <Foundation/Foundation.h>
void test1()
{
// ①擷取字串的長度,用字串去調用 length 方法(這是一個對象方法,返回值是無符號的長整型)
NSString *str1=@"12345abc12345王中堯";//無論數字、英文、漢字 都算是一個字元
// NSUInteger length1=[str1 length];
NSUInteger length1=str1.length; //這裡是調用length的get方法,和上面一行的作用一樣
NSLog(@"%ld",length1);
}
void test2()
{
// ②擷取字串中的每一個字元
NSString *str2=@"faffafs123131,.11~~~!!23!"; //這裡先不考慮中文在字串內,因為我們列印是用的C語言中的東西,用%c、%s、%@都不好使
NSUInteger len=str2.length;
unichar c;
for (int i=0; i<len; i++) {
c=[str2 characterAtIndex:i];
printf("%c ",c);
}
}
void test3()
{
// ③字串 和 其他資料類型 的轉換
// ★首先我們可以通過一個方法將其他很多種資料類型轉換成字串類型:
int a=12;
float b=3.14f;
NSString *str1=[NSString stringWithFormat:@"%d",a];
NSString *str2=[NSString stringWithFormat:@"%f",b];
NSLog(@"str1 = %@,str2 = %@",str1,str2);
// ★將字串轉化為其他資料類型
// 將字串轉化為int類型
NSString *str3=@"23";
int i=[str3 intValue];
NSLog(@"%d",i);
// 將字串轉化為float類型
NSString *str4=@"1.234";
float f=[str4 floatValue];
NSLog(@"%f",f);
// 將字串轉化為int類型
NSString *str5=@"2343.3320";
double d=[str5 doubleValue];
NSLog(@"%lf",d);
}
void test4()
{
// ④OC字串對象 和 C語言字串 的相互轉化
// 將 OC字串對象 轉換為 C語言的字串(OC字串是一個對象,所以轉換成C語言字串調用的是 對象方法)
NSString *str1=@"fasfas121";
const char *s1=[str1 UTF8String];//注意 UTF8String方法 的返回值是 const char 類型的
NSLog(@"s1 = %s",s1);
// 將 C語言的字串 轉換為 OC字串對象(C語言的字串不是對象,所以要轉換成OC的字串對象只能通過NSString類調用類方法)
char ch[]="fafsfas213";
NSString *ocStr=[NSString stringWithUTF8String:ch];
NSLog(@"ocStr = %@",ocStr);
}
void test5()
{
// ⑤去除字串首尾的 XXXXX
// 首先,以下的四個方法,stringByTrimmingCharactersInSet這個方法名是一定要寫的。到底去除的是什麼,還得看後面NSCharacterSet 類調用什麼類方法。
//1、去除字串首尾的空格
NSString *str1 = @" itc ast ";
NSString *newStr1 = [str1 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSLog(@"-------%@-------",newStr1);
//2、去除字串的首尾大寫字元(首尾如果有多餘的空格,是不會去除空格後面的大寫字母的)
// 比如說 NSString *str22=@" IOSitAcastIT "; ,這時就不會去除首尾的大寫字母
NSString *str2= @"IOSitAcastIT";
NSString *newStr2 = [str2 stringByTrimmingCharactersInSet:[NSCharacterSet uppercaseLetterCharacterSet]];
NSLog(@"-------%@-------",newStr2);
//還有很多方法,大家自己查閱資料去嘗試。這一部分不用死記硬背,用的時候查一下會用就行。
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 驗證時調用上面的test1~test5函數即可
}
return 0;
}
———————————————————————————————————————————
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。