gpt4 book ai didi

arrays - 将字节数组转换为十六进制字符串

转载 作者:IT老高 更新时间:2023-10-28 13:46:20 24 4
gpt4 key购买 nike

令人惊讶的是(对我而言),这段代码并没有达到我想要的效果:

fun ByteArray.toHexString() : String {
return this.joinToString("") { it.toString(16) }
}

原来 Bytesigned,因此您会得到单个字节的负十六进制表示,这会导致完全虚假的最终结果。

此外,Byte.toString 不会填充前导零,这是您想要的。

什么是最简单的(没有额外的库,最好没有扩展)resp。最有效的解决方法?

最佳答案

由于我在 Kotlin 1.3 上,您可能很快也会对 UByte 感兴趣(请注意,这是一个实验性功能。另见 Kotlin 1.3M11.3M2 announcement)

例如:

@ExperimentalUnsignedTypes // just to make it clear that the experimental unsigned types are used
fun ByteArray.toHexString() = asUByteArray().joinToString("") { it.toString(16).padStart(2, '0') }

格式化选项可能是最好的其他变体(但可能不是那么容易阅读......而且我总是忘记它是如何工作的,所以它绝对不是那么容易记住(对我来说:-)):

fun ByteArray.toHexString() = joinToString("") { "%02x".format(it) }

关于arrays - 将字节数组转换为十六进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52225212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com