Swift基础篇——字符串

来源:互联网 发布:做淘宝主播赚钱吗 编辑:程序博客网 时间:2024/06/04 01:20

字符串

import UIKit/*:字符:* OC: char charValue = 'a';*/var charValue1:Character = "a"/*:Swift和OC字符不一样* 1.Swift是用双引号* 2.Swift中的字符类型和OC中的也不一样, OC中的字符占一个字节,因为它只包含ASCII表中的字符, 而Swift中的字符除了可以存储ASCII表中的字符还可以存储unicode字符,例如中文:* OC:char charValue = '李'; // 错误* Swift: var charValue2:Character = "李" // 正确* OC的字符是遵守ASCII标准的,Swift的字符是遵守unicode标准的, 所以可以存放时间上所有国家语言的字符(大部分)*//*:字符串* OC的字符串是NSString, Swift的字符串String* OC的字符串是一个对象, Swift字符串是一个结构体, 效率更高* OC中的字符串是一个\0结尾, Swift字符串不是以\0结尾NSString *str  = @"abc\0def";NSLog("%@", str);// abc* Swift中的字符串支持遍历*/let str = "Swift\0def"print(str)// 遍历字符串for c in str.characters{    print(c)}// 字符串拼接var str2 = "Math"str2 += strstr2// 字符串格式化// 可以使用\()在字符串中插入任何数据let name = "Swift"let age = 99let res = "name = \(name), age = \(age)"res// 2015-10-18 13:04let str3 = String(format: "%d-%02d-%02d %02d:%02d", arguments: [2015, 10, 18, 13, 4])// 截取字符串// 提示: 在Swift开发中, 我们经常需要将Swift的字符串转换为OC的字符串来操作, 并且Swift自身也意识到了这一点, 所以在OC字符串和Swift的字符串之间转换相当简单let str4 = "Apple-Swift"let str5: NSString = str4str5.substringToIndex(5)str5.substringWithRange(NSMakeRange(6, 5))// as 就是把什么当做什么(str4 as NSString).substringWithRange(NSMakeRange(6, 5))/*:计算字符串长度:* C:* char *stringValue = "abc李";* printf("%tu", strlen(stringValue));* 打印结果6* OC:* NSString *stringValue = @"abc李";* NSLog(@"%tu", stringValue.length);* 打印结果4, 以UTF16计算*/var stringValue = "abc李"print(stringValue.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))// 打印结果6, 和C语言一样计算字节数/*:字符串比较:* OC:* NSString *str1 = @"abc";* NSString *str2 = @"abc";* if ([str1 compare:str2] == NSOrderedSame)* {* NSLog(@"相等");* }else* {* NSLog(@"不相等");* }* if ([str1 isEqualToString:str2])* {* NSLog(@"相等");* }else* {* NSLog(@"不相等");* }* Swift:(== / != / >= / <=), 和C语言的strcmp一样是逐个比较*/var str24 = "abc";var str25 = "abc";if str24 == str25{    print("相等");}else{    print("不相等");}var str6 = "abd";var str7 = "abc";if str6 >= str7{    print("大于等于");}else{    print("不大于等于");}/*:判断前后缀* OC:* NSString *str = @"https://www.baidu.com";* if ([str hasPrefix:@"https"]) {* NSLog(@"是url");* }* if ([str hasSuffix:@".com"]) {* NSLog(@"是天朝顶级域名");* }*/var str8 = "https://www.baidu.com"if str8.hasPrefix("https") {    print("是url");}if str8.hasSuffix(".com") {    print("是顶级域名");}/*:大小写转换* OC:* NSString *str = @"abc.txt";* NSLog(@"%@", [str uppercaseString]);* NSLog(@"%@", [str lowercaseString]);*/var str9 = "abc.txt";print(str9.uppercaseString)print(str9.lowercaseString)/*:转换为基本数据类型* OC:* NSString *str = @"250";* NSInteger number = [str integerValue];* NSLog(@"%tu", number);*/var str10 = "250"// 如果str不能转换为整数, 那么可选类型返回nil// str = "250db" 不能转换所以可能为nilvar number:Int? = Int(str10)if number != nil{    // 以前的版本println会自动拆包, 现在的不会    print(number!)}

0 0
原创粉丝点击