大佬教程收集整理的这篇文章主要介绍了Kotlin 将十六进制字符串转换为 ByteArray,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个字符串:
val s = "00b44a0bc6303782b729a7f9b44a3611b247ddf1e544f8b1420e2aae976003219175461d2bd7" +
"6e64ba657d7c9dff6ed7b17980778ec0cbf75fc16e52463e2d784f5f20c1691f17cdc597d7a514108" +
"0809a38c635b2a62082e310aa963ca15953894221ad54c6b30aea10f4dd88a66c55ab9c413eae49c0b" +
"28e6a3981e0021a7dcb0759af34b095ce3efce78938f2a2bed70939ba47591b88f908db1eadf237a7a" +
"7100ac87130b6119d7ae41b35fd27ff6021ac928273c20f0b3a01df1e6a070b8e2e93b5220ad0210400" +
"0c0c1e82e17fd00f6ac16ef37c3b6153d348e470843a84f25473a51f040a42671cd94ffc989eb27fd42" +
"b817f8173bfa95bdfa17a2ae22fd5c89dab2822bcc973b5b90f8fadc9b074cca8f9365b1e8994ff0bda48" + "b1f7498cce02d4e794915f8a4208de3eaf9fbff5"
这是字节的十六进制表示法,硬编码为字符串格式。 我需要这个东西作为字节数组,重要的是,不是它的 ASCII 表示,实际上是表示的十六进制值。
我能找到的所有kotlin方法,比如:
val b = s.encodetoByteArray()
似乎是获取字符串的实际 ASCII 值,并将其转换为字节数组。
如何直接从这个字符串中的值创建一个字节数组?
你可以这样处理:
import pandas as pd
import sqlite3
conn = sqlite3.connect('database.db')
c = conn.cursor()
# create table - TICKERS
c.execute(""" create table IF NOT EXISTS TABLE1
(column1 text,column2 test,column3 float,column4 text) """)
# add data to table
ticker_list_df.to_sql('TABLE1',conn,if_exists='append',index = falsE)
conn.commit()
fun String.decodeHex(): ByteArray {
require(length % 2 == 0) { "Must have an even length" }
return chunked(2)
.map { it.toInt(16).toByte() }
.toByteArray()
}
转换为 Int
。我的另一个答案是平台无关的,但它会在创建字节数组之前创建两个中间列表 - 一个字符串列表和一个字节列表。
此版本需要 JVM(因为它使用 java.lang.Integer.parseInt
),但它直接创建了 ByteArray
,没有中间数据结构。
fun String.decodeHex(): ByteArray {
require(length % 2 == 0) { "Must have an even length" }
return ByteArray(length / 2) {
Integer.parseInt(this,it * 2,(it + 1) * 2,16).toByte()
}
}
以上是大佬教程为你收集整理的Kotlin 将十六进制字符串转换为 ByteArray全部内容,希望文章能够帮你解决Kotlin 将十六进制字符串转换为 ByteArray所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。