我通过BLE模块在应用程序中收到一个六边形字符串Hex string
0031302 D31300 D 0A型激光器
此ASCII字符串为10-10\r\n(表示x轴和y轴的坐标)。我尝试使用toCharArray函数将数组转换为ASCII,这样就可以解析字符串并获取x和y值,但它在logcat中返回的字符串如下所示[C@3cea859
我也尝试创建一个函数,但它返回的字符串类型与
fun String.decodeHex(): ByteArray{
check(length % 2 == 0){"Must have an even length"}
return chunked(2)
.map { it.toInt(16).toByte() }
.toByteArray()
}
1条答案
按热度按时间vawmfj5a1#
就快到了。你只需要把ByteArray转换成String。标准的
toString()
方法来自Any
类型(相当于Java的Object
)。ByteArray不会覆盖它来给予你想要的。相反,使用String
构造函数或toString(Charset)
函数:(Note在该上下文中
require
比check
更合适。