字符串
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 += str
str2
// 字符串格式化
// 可以使用\()在字符串中插入任何数据
let name = "Swift"
let age = 99
let res = "name = \(name),age = \(age)"
res
// 2015-10-18 13:04
let str3 = String(format: "%d-%02d-%02d %02d:%02d",arguments: [2015,10,31)">18,31)">13,31)">4])
// 截取字符串
// 提示: 在Swift开发中,我们经常需要将Swift的字符串转换为OC的字符串来操作,并且Swift自身也意识到了这一点,所以在OC字符串和Swift的字符串之间转换相当简单
let str4 = "Apple-Swift"
let str5: NSString = str4
str5.substringToIndex(5)
str5.substringWithRange(NSMakeRange(6,31)">5))
// as 就是把什么当做什么
(str4 as NSString)/*: 计算字符串长度: * 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 = if str6 >= str7
{
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");
}
.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" 不能转换所以可能为nil
var number:Int? = Int(str10)
if number != nil
{
// 以前的版本println会自动拆包,现在的不会
print(number!)
}