背景
在开发调试中经常使用ByteArray进行调试,ByteArray的转换不可避免。但是不同的实现方式调用起来就缺别很大了,使用Kotlin的extension语法糖使用起来就很方便,静态方法实现转换与之无法比拟。
简单的ByteArray
val bytes = byteArrayOf(0x01, 0x02, 0x03, 0x04)
ByteArray转Hex字符串
fun ByteArray.toHex(): String = joinToString(separator = "") { eachByte -> "%02x".format(eachByte) }
Hex字符串转ByteArray
fun String.decodeHex(): ByteArray {
check(length % 2 == 0) { "Must have an even length" }
return chunked(2)
.map { it.toInt(16).toByte() }
.toByteArray()
}
简单使用
fun helloWorld() {
val bytes = byteArrayOf(0x01, 0x02, 0x03, 0x04)
//to hex
val byteArrayHex = bytes.toHex()
println("bytes hex=${byteArrayHex}")
//to ByteArray
val byteArray = byteArrayHex.decodeHex()
}