// MARK: - Character -> String /* 注意: 如果不声明 Character 类型则会自动推断为 String. 而且声明了 Character 之后, 后面只能传入一个字符 如果使用 let cha: Character = "我的" 则会报错 */ let cha: Character = "我" let str = String(cha) // 我
// MARK: - String -> Character /* 注意: 如果 str 中的字符为一个以上, 那么在编译时第二行会报错! */ let str = "我" let cha = Character(str) // 我
Int <-> String
1 2 3 4 5 6 7 8 9
// MARK: - Int -> String // 一定能成功 let int = 1 let str = String(int) // 1
// MARK: - String -> Int // 注意: 如果 str 是字符串, 比如 str = "a", 那么最终的 int 将为 nil let str = "1" let int = Int(str) // Optional(1)
Int <-> Double
1 2 3 4 5 6 7
// MARK: - Float -> Int let float = 1.1 let int = Int(float) // 1
// MARK: - Int -> Float let int = 1 let float = Float(int) // 1.0
Int <-> Float
1 2 3 4 5 6 7
// MARK: - Float -> Int let double = 1.1 let int = Int(double) // 1
// MARK: - Int -> Float let int = 1 let double = Double(int) // 1.0
Data <-> String
1 2 3 4 5 6 7
let str: String = "意大利" let data = str.data(using: String.Encoding.utf8) // 字符串转Data let newStr = String(data: data!, encoding: String.Encoding.utf8) // Data转字符串 print("data=", data!, "\n", "newStr=", newStr!)
// 输出: data = 9 bytes // newStr = 意大利
其他
MD5 转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
extensionString{ funcmd5() -> String { let str = self.cString(using: String.Encoding.utf8) let strLen = CUnsignedInt(self.lengthOfBytes(using: String.Encoding.utf8)) let digestLen = Int(CC_MD5_DIGEST_LENGTH) let result = UnsafeMutablePointer<UInt8>.allocate(capacity: 16) CC_MD5(str!, strLen, result) let hash = NSMutableString() for i in0 ..< digestLen { hash.appendFormat("%02x", result[i]) } free(result) returnString(format: hash asString) } }