1. NSString轉NSInteger, 轉int (float, double類似 )
1.1正常情況 , NSString所包含內容確能轉化為int的類型
NSString *sNumber = @"123"; NSInteger lNumber = [sNumber integerValue]; int iNumber = [sNumber intValue]; NSLog(@"字符串NSString: %@\n轉換后-->\n長整型(64bit long): %ld\n整型(32bit int):%d", sNumber, (long)lNumber, (int)iNumber);
執行結果
字符串NSString: 123 轉換后--> 長整型(64bit long): 123 整型(32bit int):123
1.2非正常情況 , NSString 包含不能轉化為int的字符串
NSString *sNumber = @"123abc"; NSInteger lNumber = [sNumber integerValue]; int iNumber = [sNumber intValue]; NSLog(@"\n1. 字符串NSString: %@\n轉換后-->\n長整型(64bit long): %ld\n整型(32bit int):%d", sNumber, (long)lNumber, (int)iNumber); NSString *sNumber2 = @"12a3bc"; NSInteger lNumber2 = [sNumber2 integerValue]; int iNumber2 = [sNumber2 intValue]; NSLog(@"\n2. 字符串NSString: %@\n轉換后-->\n長整型(64bit long): %ld\n整型(32bit int):%d", sNumber2, (long)lNumber2, (int)iNumber2); NSString *sNumber3 = @"1a23bc"; NSInteger lNumber3 = [sNumber3 integerValue]; int iNumber3 = [sNumber3 intValue]; NSLog(@"\n3. 字符串NSString: %@\n轉換后-->\n長整型(64bit long): %ld\n整型(32bit int):%d", sNumber3, (long)lNumber3, (int)iNumber3); NSString *sNumber4 = @"a123bc"; NSInteger lNumber4 = [sNumber4 integerValue]; int iNumber4 = [sNumber4 intValue]; NSLog(@"\n4. 字符串NSString: %@\n轉換后-->\n長整型(64bit long): %ld\n整型(32bit int):%d", sNumber4, (long)lNumber4, (int)iNumber4);
執行結果
1. 字符串NSString: 123abc 轉換后--> 長整型(64bit long): 123 整型(32bit int):123 2015-07-20 22:18:24.1872. 字符串NSString: 12a3bc 轉換后--> 長整型(64bit long): 12 整型(32bit int):12 2015-07-20 22:18:24.1873. 字符串NSString: 1a23bc 轉換后--> 長整型(64bit long): 1 整型(32bit int):1 2015-07-20 22:18:24.1874. 字符串NSString: a123bc 轉換后--> 長整型(64bit long): 0 整型(32bit int):0
可以看到,並沒有報錯,而且能轉化的字符串能到第一個非數字字符為止。
2. NSInteger轉NSString: +stringWithFormat
NSInteger lNumber = 1200l; NSString* sNumber = [NSString stringWithFormat:@"%ld", lNumber]; NSLog(@"\n長整型(64bit long): %ld\n轉換后-->\nNSString: %@", (long)lNumber, sNumber);
執行結果
長整型(64bit long): 1200 轉換后--> NSString: 1200
3.NSString轉NSDate
(未完待續)...
