如何在Kotlin中实现十六进制值数组字符串与ByteArray互转
解决方案
步骤1:将十六进制数组字符串转换为ByteArray
先从输入字符串中提取单个十六进制数值,再转换为Byte类型组成ByteArray:
val intArr = "[61, 62, 63]" // 去掉首尾方括号,分割出独立的十六进制字符串 val hexValues = intArr.removeSurrounding("[", "]").split(", ").filterNot { it.isBlank() } // 将每个十六进制字符串转成Byte,生成ByteArray val byteArray = hexValues.map { it.toInt(16).toByte() }.toByteArray()
步骤2:将ByteArray转换回原始数组字符串
把ByteArray里的每个元素转回两位小写十六进制字符串,再拼接成原始的数组格式:
// 将每个Byte格式化为两位小写十六进制字符串 val hexStringList = byteArray.map { "%02x".format(it) } // 拼接成和原字符串一致的数组格式 val restoredString = "[${hexStringList.joinToString(", ")}]" // 此时restoredString的值即为"[61, 62, 63]"
补充说明
- 用
removeSurrounding直接去除首尾方括号,比手动截取索引更简洁; - 解析十六进制时指定基数
16,确保字符串按十六进制规则转换; - 格式化时用
%02x保证单个十六进制数字(如0x09)会显示为两位的09,和原格式统一。
内容的提问来源于stack exchange,提问作者Kim Mỹ
相关产品推荐
相关产品推荐

