当前位置: 首页 > 知识库问答 >
问题:

如何“打印”处理不可打印值的字节数组

邢飞鸿
2023-03-14

接收字节数组(表示任何内容:某种有线格式、某种形式的编码数据、带有嵌入“文本”的二进制数据等)。我希望能够以以下形式打印数组

  1. 作为十六进制字符串
  2. 作为“可打印”文本

第一种情况部分是出于调试的原因,但也可以在非调试模式下使用。第二种情况纯粹是出于调试的原因,并允许人类与其他信息源进行比较。

如果任何人有如何实现这一点的信息,我将非常感谢。

共有1个答案

年高洁
2023-03-14

对#2试试这个:

String original = new String(bytes);
String printable = original.replaceAll("\\P{Print}", ".")); //Or any other character instead of "." you want

它使用POSIX可打印字符类。

如果需要Unicode支持,请使用utf-8字符集参数创建字符串,并使用UNICODE_CHARACTER_CLASS标志构造模式,并使用与上面相同的regex。

 类似资料:
  • 主要内容:命令行打印机控制,测试打印机是否存在也可以通过命令从批处理脚本中控制打印。 语法 其中, - 指定打印设备。 示例 上述命令将打印文件到并行端口。 命令行打印机控制 从Windows 2000开始,可以使用和从Windows的命令行配置许多但不是全部的打印机设置 语法 有一些可用的选项是以下 - /dl - 删除本地打印机。 /dn - 删除网络打印机连接。 /dd - 删除打印机驱动。 /e - 显示打印首选项。 /f[file]

  • 这是我的代码:- 为什么程序不打印完美的数字? 我已经检查了很多次代码,但我找不到解决方案。请告诉我代码中出了什么问题。提前谢谢 任何帮助都将不胜感激。。。。

  • 问题内容: 在我的字节数组中,我具有一条消息的 哈希 值,该值由一些负值和正值组成。使用该语句可以轻松打印正值。 现在如何获得负值? 问题答案: 好吧,如果您乐于以十进制格式打印它,则可以通过屏蔽使其变为正数: 但是,如果要打印散列,则使用十六进制会更常规。关于堆栈溢出,还有很多其他问题,这些问题将Java中的二进制数据转换为十六进制字符串。

  • 问题内容: 我正在尝试修复这段代码,该代码是从具有车牌号和车主列表(该格式)的哈希图进行打印的。我试图通过printOwners()仅打印出所有者;但是我不能不打印重复的东西。 我已经玩了一段时间,但似乎无法跳过重复项。 这是我的代码: 问题答案: 要删除重复项,请使用: 或者使用Java 8 和方法:

  • 我现在的代码: 我希望它打印两个数组的交集,而不需要再次打印相同的数字。 E、 g:code>[1,2,2,1]和的交点应该只打印一次,而不是像我现在的代码那样。

  • 为什么我的代码要打印这个,而不是打印保存在数据库中的学生姓名? 下面是我的代码: