使用 Swift 5,根据您的需要,您可以选择以下三种方法之一来解决您的问题。
#1。使用 String 的 init(_:radix:uppercase:) 初始化器
Swift String 有一个 init(_:radix:uppercase:) 初始化器,其声明如下:
init<T>(_ value: T, radix: Int = 10, uppercase: Bool = false) where T : BinaryInteger
创建一个字符串,表示以 10 为基数的给定值,或其他一些指定的基数。
下面的 Playground 代码展示了如何使用 init(_:radix:uppercase:) 创建一个以十六进制格式表示整数值的 String 实例,而无需导入 Foundation:
let string1 = String(2, radix: 16)
print(string1) // prints: "2"
let string2 = String(211, radix: 16)
print(string2) // prints: "d3"
let string3 = String(211, radix: 16, uppercase: true)
print(string3) // prints: "D3"
#2。使用 String 的 init(format:_:) 初始化器
Foundation 提供 String 一个 init(format:_:) 初始化程序。 init(format:_:) 有以下声明:
init(format: String, _ arguments: CVarArg...)
返回一个String 对象,该对象使用给定的格式字符串作为模板进行初始化,其余参数值将被替换到该模板中。
Apple 的字符串编程指南 提供了String 和NSString 支持的格式说明符列表。在这些格式说明符中,%X 有以下description:
无符号 32 位整数 (unsigned int),使用数字 0-9 和大写 A-F 以十六进制打印。
下面的 Playground 代码显示了如何创建一个 String 实例,该实例用 init(format:_:) 表示十六进制格式的整数值:
import Foundation
let string1 = String(format:"%X", 2)
print(string1) // prints: "2"
let string2 = String(format:"%02X", 1)
print(string2) // prints: "01"
let string3 = String(format:"%02X", 211)
print(string3) // prints: "D3"
let string4 = String(format: "%02X, %02X, %02X", 12, 121, 255)
print(string4) // prints: "0C, 79, FF"
#3。使用 String 的 init(format:arguments:) 初始化器
Foundation 提供 String 一个 init(format:arguments:) 初始化程序。 init(format:arguments:) 有以下声明:
init(format: String, arguments: [CVarArg])
返回一个String 对象,该对象使用给定的格式字符串作为模板进行初始化,其余参数值将根据用户的默认语言环境替换到该模板中。
下面的 Playground 代码展示了如何创建一个 String 实例,该实例用 init(format:arguments:) 表示一个十六进制格式的整数值:
import Foundation
let string1 = String(format:"%X", arguments: [2])
print(string1) // prints: "2"
let string2 = String(format:"%02X", arguments: [1])
print(string2) // prints: "01"
let string3 = String(format:"%02X", arguments: [211])
print(string3) // prints: "D3"
let string4 = String(format: "%02X, %02X, %02X", arguments: [12, 121, 255])
print(string4) // prints: "0C, 79, FF"