gpt4 book ai didi

java - java中如何将字符串转换为bcd格式的字节数组?

转载 作者:行者123 更新时间:2023-12-01 19:29:34 37 4
gpt4 key购买 nike

我有下一个字符串:

String points = "210987654321";

我需要以 bcd 格式结束 6 字节数组,如下所示(相同的数字):

byte [] result = { 0x21, 0x09, (byte) 0x87, 0x65, 0x43, 0x21 };

我怎样才能到达那里? points.getBytes(); 没有提供我所需要的。

最佳答案

根据您提供的代码及其预期输出,您似乎正在尝试转换为 BCD 格式(BCD 是一个相当通用的定义),该格式通常用于表示一个字符串,其中每个字母代表一个十六进制数字。相应的字节表示(来自对此答案的注释:“压缩的BCD”)。

StackOverflow中有解决方案,例如以下:

但是,为了“不重新发明轮子”,我更喜欢 Apache Commons 或 Google Guava 等库中提供的功能:

对于 Apache Commons,它大致可归结为以下代码:

byte[] result = Hex.decodeHex(points)

但是需要注意的是,上面的代码还接受包含字母“F”之前的字母的字符串作为输入,因此如果您不能接受,则必须确保您的字符串仅包含数字。

<小时/>

由于 BCD 包含多种变体,我认为值得一提的是,在应用 BCD 转换之前,您应该根据软件的用途确定要应用哪种特定转换。

例如,在金融/服务领域,通常需要转换为 EBCDIC 格式 ( http://ascii-table.com/ebcdic-table.php ) 以与 IBM 系统交互。在这种情况下,我建议检查以下 StackOverflow 问题及其相关答案:

<小时/>

最后,如果您确实想要转换为另一种 BCD 格式,您可能已经根据管理特定 BCD 格式的规则编写了自己的代码。当然,在开始编码之前,我仍然建议您寻找为您执行转换的库。

关于java - java中如何将字符串转换为bcd格式的字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60165630/

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