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

咕:

我有下一个字符串:

String points = "210987654321";

我需要以bcd格式结束6字节数组,看起来像这样(相同数字):

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

我如何到达那里?points.getBytes();没有提供我所需要的。

Filippo Possenti:

根据您提供的代码及其预期的输出,您似乎正在尝试转换为通常用于表示字符串的BCD格式(BCD是一个相当通用的定义),其中每个字母表示一个HEX数字,并表示为其对应的字节表示形式(从评论到此答案:“打包的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格式的规则编写了自己的代码。当然,在开始编码之前,我仍然建议您寻找为您执行转换的库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何UINT8字节数组转换为字符串的Java

如何在Java中从字节数组转换为字符串以删除填充字符?

如何在Java中将字符串与UTF8字节数组之间来回转换

如何将Java字符串转换为ASCII字节数组?

如何将字符串数组转换为字节数组?(java)

如何在Java中将字节数组转换为十六进制字符串?

如何在Java中将具有空终止符的字节数组转换为字符串?

如何在Go中将字节数组转换为字符串数组?

将字节数组转换为字符串

如何在Swift中将UInt8字节数组转换为字符串

在Go中将字符串转换为固定大小的字节数组

如何在Go中将字符串转换为使用给定字符集编译的字节数组?

如何在Swift中将十六进制字符串转换为UInt8字节数组?

如何在Python中将具有非ASCII字节的字节数组转换为字符串?

字节数组转换为字符串并反向:恢复的字节数组与Java中的原始字节数组不匹配

如何在JNI中将Java字节数组的内容转换为C字符串?

如何在Crystal中将十六进制字符串转换为字节数组?

如何在PowerShell中将哈希字符串转换为字节数组?

如何在ctypes中将无符号字节数组转换为base64字符串

在GJS中将字符串转换为UTF-16字节数组

如何在C#中将字节数组的子范围转换为字符串

从字符串数组转换为字节数组

如何在android中将输入流转换为字节数组到字符串

在 C# 中将十六进制字符串转换为字节数组

将字符串格式的python字节转换为c#中的字节数组

如何在php中将字符串转换为ascii字节数组

如何在CAPL中将字节数组转换为字符串?

将表示为字符串的字节数组转换为字节数组

在python中将字节数组的字符串转换为字节数组