首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在KOTLIN中将十六进制字符串转换为ASCII字符串

如何在KOTLIN中将十六进制字符串转换为ASCII字符串
EN

Stack Overflow用户
提问于 2022-03-30 07:49:35
回答 1查看 1.2K关注 0票数 0

在我的应用程序中,我收到了一个带有BLE模块的六角形字符串六角弦

0031302D31300D0A

ASCII中的这个字符串是10-10\r\n (表示x轴和y轴的坐标)。我尝试使用toCharArray函数在数组中转换为ASCII,并有可能解析该字符串并获取x和y值,但它在logcat [C@3cea859 ]中返回如下字符串

我也尝试创建一个函数,但它返回相同类型的字符串。

代码语言:javascript
复制
fun String.decodeHex(): ByteArray{
        check(length % 2 == 0){"Must have an even length"}
        return chunked(2)
            .map { it.toInt(16).toByte() }
            .toByteArray()
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-30 08:16:01

你就快到了。只需将ByteArray转换为字符串即可。标准的toString()方法来自于Any类型(相当于Java的Object)。ByteArray不会覆盖它来给你想要的。相反,使用String构造函数:

代码语言:javascript
复制
fun String.decodeHex(): String {
    require(length % 2 == 0) {"Must have an even length"}
    return String(
        chunked(2)
            .map { it.toInt(16).toByte() }
            .toByteArray()
    )
}

(还请注意,在这种情况下,requirecheck更合适。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71673452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档