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

2023-12-01

我在这个论坛上看到了很多相关的问题和答案,但没有找到任何可以解决我的问题的内容。

这个想法很简单:

(这是使用 Java 编程语言 - 我目前仅限于使用 Java 7)

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

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

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

我认为我对第一种情况有解决方案,但我正在努力解决第二种情况。

显然,字节数组可能包含不可打印的字符或以不同方式呈现的字符。如何“打印”数组以便表示所有字节?我可以提供的一个很好的类比是 UNIXod命令,在哪里od -ah以十六进制形式和 ASCII 字符显示二进制数据。在这种情况下,点(.) 通常用于代替不可打印字符或控制字符。

我不需要它看起来特别像什么od输出,但希望能够显示数据,以便至少可以看到可打印字符,其余部分用某种占位符表示。另外,我不想删除不可打印的字符,因为这会产生误导性的数据表示。

如果有人有关于如何实现这一目标的信息,我将非常感激。


试试#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标记并使用与上面相同的正则表达式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 在 jTextfield 中禁用“粘贴”

    我有一个用 Swing awt 编写的应用程序 我想阻止用户将值粘贴到文本字段中 有没有办法在不使用动作监听器的情况下做到这一点 您可以使用 null 参数调用 setTransferHandler 如下所示 textComponent s
  • 对象数组的数组(二维数组)JNI

    我正在努力创建自定义对象类型 ShareStruct 的二维数组 jobjectArray ret jobjectArray ins jobjectArray outs jclass myClass env gt FindClass env
  • 使类只能从特定类实例化

    假设我有 3 节课class1 class2 and class3 我怎样才能拥有它class1只能通过实例化class2 class1 object new class1 但不是 class3 或任何其他类 我认为它应该与修饰符一起使用
  • 生成逗号分隔值

    假设我有一个字符串集合 foo bar xyz 我想从列表中生成一个逗号分隔的值 如下所示 foo bar xyz 请注意末尾缺少 我知道有多种方法可以生成此内容 使用 for 循环和 string Format 或 StringBuild
  • 重写 getPreferredSize() 会破坏 LSP

    我总是在这个压倒一切的网站上看到建议getPreferredSize 而不是使用setPreferredSize 例如 如前面的线程所示 对于固定大小的组件 使用重写 getPreferredSize 而不是使用 setPreferredS
  • 运行 java -jar 时出现 java.lang.ClassNotFoundException

    我正在使用 ant 来构建我的build xml文件 它编译正常 但随后得到运行时java lang NoClassDefFoundError通过 运行生成的 jar 时java jar my jar jar 似乎这个问题出现了很多 但没有
  • 本地开发的 Azure Functions 扩展包版本问题

    我有一个带有队列触发器的 Java 11 Azure 函数 该函数在部署到 Azure 时按预期工作 并正确从定义的服务总线主题中提取消息 但是 运行相同的功能locally除非我回滚版本 否则不起作用Azure Functions 绑定扩
  • 使用 Spring 控制器处理错误 404

    I use ExceptionHandler处理我的网络应用程序抛出的异常 在我的例子中我的应用程序返回JSON回应HTTP status用于对客户端的错误响应 但是 我正在尝试弄清楚如何处理error 404返回与处理的类似的 JSON
  • 记录共享和映射的诊断上下文

    据我所知 其他人做了什么来解决 Commons Logging 项目 针对 NET 和 Java 不支持映射或嵌套诊断上下文这一事实 执行摘要 我们选择直接使用实现者日志框架 在我们的例子中为 log4j 长答案 您是否需要一个抽象日志框架
  • Java:SortedMap、TreeMap、可比较?如何使用?

    我有一个对象列表 需要根据其中一个字段的属性进行排序 我听说 SortedMap 和 Comparator 是实现此目的的最佳方法 我是否要与正在排序的类实现 Comparable 还是创建一个新类 如何实例化 SortedMap 并传入
  • 用于层次结构树角色的 Spring Security / Java EE 解决方案

    我知道 Spring Security 非常适合标准角色和基于权限的授权 我不确定的是这种情况 系统中管理着 10 000 名员工 员工被组织成组织结构图 跨部门的谁向谁报告的树 其中一些员工是用户 这些用户仅被允许访问其职责范围内的员工
  • JUNIT 测试 void 方法

    我有一个充满 void 方法的 java 类 我想进行一些单元测试以获得最大的代码覆盖率 例如我有这个方法 protected static void checkifValidElements int arg1 int arg2 metho
  • 如何从字符串中解析一个大整数? [复制]

    这个问题在这里已经有答案了 我有一个这样的方法 Integer parseInt myInt 不是这个整数变得很长 我得到以下异常 java lang NumberFormatException For input string 40001
  • 如何以编程方式创建 CardView

    我正在开发一个 Android 应用程序Java Android Studio 我想在活动中创建CardView以编程方式 我想将以下属性设置为CardView layout width wrap content layout row 0
  • 删除 JFX 中选项卡后面的灰色背景

    So is there any way to remove the gray area behind the tab s 我尝试过用 CSS 来做到这一点 但没有找到方法 要设置 tabpane 标题的背景颜色 请在 CSS 文件中写入 t
  • java中使用多线程调用同一类的不同方法

    我有一个类 如下所示 具有三种方法 public class MyRunnable implements Runnable Override public void run what code need to write here to c
  • 如何从 JavaFX 中的另一个控制器类访问 UI 元素?

    我有一个使用 NetBeans 8 编写的 JavaFX Java 8 应用程序 没有SceneBuilder 我的应用程序有一个主窗口 该窗口有自己的 FXML 文件 primary fxml 和自己的控制器类 FXMLPrimaryCo
  • 高效创建抗锯齿圆形蒙版

    我正在尝试创建抗锯齿 加权而不是布尔 圆形掩模 以制作用于卷积的圆形内核 radius 3 no of pixels to be 1 on either side of the center pixel shall be decimal a
  • Axis2 错误:要输出的文本中的空白字符 (0x4) 无效

    我创建了一个 Java 客户端 使用 Axis2 1 7 6 作为代码生成器与 SOAP Web 服务进行交互 问题在于客户端的某些输入抛出异常并显示以下消息 org apache axis2 AxisFault Invalid white
  • Java/MongoDB 按日期查询

    我将一个值作为 java util Date 存储在我的集合中 但是当我查询以获取两个特定日期之间的值时 我最终得到的值超出了范围 这是我的代码 插入 BasicDBObject object new BasicDBObject objec

随机推荐

  • NSDecimalNumber(x).intValue 返回 -2、0、15 和 199,具体取决于 x 中的小数位数 (x = 199.999...5)

    我们在业务逻辑中发现了一个有趣的案例 它完全打破了我们的逻辑 但我们不明白为什么NSDecimalNumber and Decimal表现得像它那样 我的案例游乐场如下 import Foundation let pQuantity Dec
  • 无法启动 kibana-4.1.2

    我的环境 CentOS 6 6 elasticsearch 2 0 0 rc1 rpm kibana 4 1 2 linux x64 root node2 files sestatus SELinux status enabled SELi
  • 如何在android中显示外部图像?

    我想显示外部图像 例如 http abc com image jpg 在我的 Android 手机应用程序中 谁能指导我如何实现这一目标 有很多方法可以实现您的要求 基本上 您必须使用 urlrequest 下载图像 然后使用 InputS
  • Pathways:操作 R 中父子“节点”中的事件列表

    我感兴趣的是根据预先指定的事件列表 例如诊断 手术 治疗1 治疗2 死亡 可视化患者的路径 测试数据集可能如下所示 df lt structure list ID structure c 1L 1L 1L 2L 2L 2L 2L 2L 3L
  • Node.js 模块范式的基础知识?

    我正在努力真正掌握这里的一些基本知识 我觉得这不仅阻碍了我 而且导致了蹩脚的代码 我不喜欢这样 我理解将功能代码块分解为单独模块的概念 例如路由 数据库模型等 但我很难理解如何正确编排所有这些单独模块的相互依赖的功能 让我举几个例子来说明我
  • mysqli_real_escape_string 和双引号问题

    我有这个代码 var mysqli real escape string connection POST var sql UPDATE users SET var var WHERE id id 如果变量是aaa 没关系 即使 var 是a
  • sql-server:我如何知道谁在我的数据库中?

    我有一个访问前端和sql server 后端 我想知道哪些用户当前正在使用该数据库 使用 access 或 sql server 可以做到这一点吗 在 SQL Server 中 您可以运行此存储过程 sp who2 EDIT 如果您想查看在
  • 在 Maven 中调试?

    是否可以从 Maven 启动 jdb 等调试器 我有一个pom xml成功编译项目的文件 但是 该程序挂在某处 我真的很想启动 jdb 或等效的调试器来查看发生了什么 我编译使用mvn compile并使用以下命令启动 mvn exec j
  • 如何使用 sqldf 包提取月份

    我尝试使用 sqldf 包和月份函数获取基于日期分组的视图 但出现错误 Error in sqliteSendQuery con statement bind data error in statement no such function
  • 按依赖于另一列的列进行分组

    这是我试图通过 MySQL 查询彻底解决的问题的简化视图 这不是我正在处理的实际表 如果我有下表 Name Buyer ID John Fred 4 John Smith 3 Fred Sally 2 John Kelly 1 我想要一个查
  • NTFS 连接,难以理解 API

    Update 这个问题有evolved进入一个关于NTFS filesystem filter driver如何在备份应用程序和其他需要了解的程序中使用Win32 API磁盘上的文件到底是什么 路口和重解析点是我需要考虑的关键概念 也是 N
  • MySQL 可以拆分列吗?

    我有一列包含逗号分隔的数据 1 2 3 3 2 1 4 5 6 5 5 5 我正在尝试运行一个搜索来单独查询 CSV 字符串的每个值 0
  • 基数排序算法

    我得到了一些逆向工程算法 下面的算法是基数排序 但我对代码中实际发生的情况感到非常困惑 我是算法新手 不确定代码如何对数组中的元素进行排序 我不确定哪些位与算法有关以及掩码是什么 这是代码 ArrayList
  • 是否可以使用常规 JVM 创建一个不会被任何其他线程抢占的高优先级线程?

    所以我的目标很简单 我想在 Java 中创建一个高优先级线程 而不使用 RTSJ 实时 Java VM 或其他一些专有 JVM 假设您从未创建任何垃圾 因此 GC 不会成为罪魁祸首 假设我有 4 个处理器 可行吗 如果没有 是否可以计算我的
  • 使用 Python(套接字)创建一个简单的聊天应用程序

    我正在尝试使用套接字 python 创建一个简单的聊天应用程序 客户端可以向服务器发送消息 服务器只需将消息广播给除发送消息的客户端之外的所有其他客户端 客户端有两个线程 永远运行 send 发送只是将客户端的消息发送到服务器 receiv
  • 清除 JFormattedTextField 的内容不起作用?

    我有一个JFormattedTextField它只接受 8 位数字 但是当我尝试使用退格按钮清除文本字段时 它不会删除数字的第一个字符 与删除按钮的行为也相同 我每次都必须预先使用 Esc 键来删除该字符 NumberFormat intF
  • 子进程模块无法运行命令

    我正在尝试对我的一组文件执行 Google 的 cpplint py 并将结果收集到一个日志文件中 但是 我还没有成功击败子流程模块 我当前的代码在这里 import os subprocess rootdir C users me Doc
  • 保存从 xmpp Strope si-filetransfer 接收到的文件

    我正在使用 strope si filetransfer js 插件在我的 Web 应用程序中实现文件传输 我能够在 iq 节中接收文件详细信息 我的问题是 如何从 iq 节中提取文件数据并下载 我提到的链接可以解决 https githu
  • 在 Visual Studio 2008 中调试时如何通过管道传输输出?

    我尝试进入项目属性 在配置属性下选择调试 并将命令参数设置为 gt out txt 当然不带引号 但是 当我运行该程序 使用 F5 时 我仍然在控制台上看到输出 并且没有创建 out txt 文件 这只是一个简单的 C Hello Worl
  • 如何“打印”处理不可打印值的字节数组

    我在这个论坛上看到了很多相关的问题和答案 但没有找到任何可以解决我的问题的内容 这个想法很简单 这是使用 Java 编程语言 我目前仅限于使用 Java 7 接收到一个字节数组 代表任何内容 某种有线格式 某种形式的编码数据 嵌入 文本 的