程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Kotlin 将十六进制字符串转换为 ByteArray大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Kotlin 将十六进制字符串转换为 ByteArray?

开发过程中遇到Kotlin 将十六进制字符串转换为 ByteArray的问题如何解决?下面主要结合日常开发的经验,给出你关于Kotlin 将十六进制字符串转换为 ByteArray的解决方法建议,希望对你解决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()
  1. 字符串拆分为 2 个字符对,代表每个字节。
  2. 将每个十六进制对解析为其整数值。
  3. 将解析后的 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,请注明来意。