標籤:
//: Playground - noun: a place where people can playimport UIKitvar str = "Hello, playground"println("----字元----");/*字元:Swift和OC字元不一樣, Swift是用雙引號.Swift中的字元類型和OC中的也不一樣, OC中的字元佔一個位元組,因為它只包含ASCII表中的字元, 而Swift中的字元除了可以儲存ASCII表中的字元還可以儲存unicode字元, 例如中文OC的字元是遵守ASCII標準的,Swift的字元是遵守unicode標準的, 所以可以存放時間上所有國家語言的字元(大部分)OC:OC: char charValue = ‘a‘;char charValue = ‘李‘; // 錯誤Swift:*/var charValue: Character = "a"var charValue1:Character = "李" //正確// 注意: 雙引號中只能放一個字元, 如下是錯誤寫法// Swift: var charValue:Character = "ab"println("----字串----");/*字串:字元是單個字元的集合, 字串是多個字元的集合, 想要存放多個字元需要使用字串.C:char *stringValue = "ab";char stringArr = "ab";OC:NSString *stringValue = "ab";Swift:var stringValue = "ab">C語言中的字串是以\0結尾的, 例如:char *stringValue = "abc\0bcd";printf("%s", stringValue);列印結果為abc>OC語言中的字串也是以\0結尾的, 例如:NSString *stringValue = @"abc\0bcd";NSLog(@"%@", stringValue);列印結果為abc>Swift中的字串和C語言/OC語言中的字串是不一樣的*/var stringValue = "ab"var stringValue1 = "abc\0bcd"println(stringValue)println("-計算字串、長度-");/*字串常用方法:>計算字串長度-----C:char *stringValue = "abc李";printf("%tu", strlen(stringValue));列印結果6, 位元組數OC:NSString *stringValue = @"abc李";NSLog(@"%tu", stringValue.length);列印結果4, 以UTF16計算Swift: Swift中的字串是完全相容unicode標準的*/var stringValue2 = "abc李"println(count(stringValue2))// 列印結果4, 無論以什麼編碼, 都是計算元素的個數println("--拼接、字串--");/*>字串拼接-----C:char str1[] = "abc";char *str2 = "bcd";char *str = strcat(str1, str2);OC:NSMutableString *str1 = [NSMutableString stringWithString:@"abc"];NSString *str2 = @"bcd";[str1 appendString:str2];NSLog(@"%@", str1);Swift:*/var str1 = "abc";var str2 = "bcd";var str12 = str1 + str2;println("--格式化、字串--");/*>字串格式化-----OC:NSInteger index = 1;NSString *str1 = [NSMutableString stringWithFormat:@"http://ios.itcast.cn/pic/%tu.png", index];NSLog(@"%@", str1);Swift:*/var index = 1var str3 = "http://ios.itcast.cn/pic/\(index).png"println(str3)println("--比較、字串--");/*>字串比較-----OC:NSString *str1 = @"abc";NSString *str2 = @"abc";if ([str1 isEqualToString:str2]){NSLog(@"相等");}else{NSLog(@"不相等");}if ([str1 compare:str2] == NSOrderedSame){NSLog(@"相等");}else{NSLog(@"不相等");}Swift:(== / != / >= / <=), 和C語言的strcmp一樣是逐個比較*/var str10 = "abc";var str20 = "abc";if str10 == str20{ println("相等");}else{ println("不相等");}var str11 = "abd";var str21 = "abc";if str11 >= str21{ println("大於等於");}else{ println("不大於等於");}/*>判斷是否為空白OC:NSString *str1 = @"abc";if (str1.length == 0) {NSLog(@"沒有值");}else{NSLog(@"有值");}Swift:*/var str0 = "abc"if str0.isEmpty{ println("沒有值")}else{ println("有值")}/*>判斷前尾碼-----OC:NSString *str = @"http://ios.520it.com";if ([str hasPrefix:@"http"]) {NSLog(@"是url");}if ([str hasSuffix:@".cn"]) {NSLog(@"是天朝頂級網域名稱");}Swift:*/var str00 = "http://ios.520it.com"if str00.hasPrefix("http") { println("是url");}if str00.hasSuffix(".cn") { println("是天朝頂級網域名稱");}/*>擷取副檔名-----OC:NSString *str = @"abc.txt";NSLog(@"%@", [str pathExtension]);Swift:*/var str02 = "abc.txt";println(str02.pathExtension)/*>大小寫轉換-----OC:NSString *str = @"abc.txt";NSLog(@"%@", [str uppercaseString]);NSLog(@"%@", [str lowercaseString]);Swift:*/var str01 = "abc.txt";println(str01.uppercaseString)println(str01.lowercaseString)/*>資料類型轉換OC:NSString *str = @"250";NSInteger number = [str integerValue];NSLog(@"%tu", number);Swift:*/var str000 = "250"// 如果str不能轉換為整數, 那麼可選類型返回nil// str = "250sb"// 注意不要在轉換時候(.toInt()!)強制解包, 如果不能轉換又強制解包會觸發執行階段錯誤var number:Int? = str000.toInt()if number != nil{// 以前的版本println會自動拆包, 現在的不會println(number!)}// 如果要將字串轉換為其它類型, 需要藉助OC中的方法str000 = "10.1"var d = (str000 as NSString).doubleValue
|--> Copyright (c) 2015 Bing Ma.
|--> GitHub RUL: https://github.com/SpongeBob-GitHub
Swift # 字串