// 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) } }