//: Playground - noun: a place where people can play import UIKit var 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 = 1 var 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
时间: 2024-10-24 18:57:07