【问题标题】:How can I display a byte array as a String in java's debug detail formatter?如何在 java 调试详细信息格式化程序中将字节数组显示为字符串?
【发布时间】:2010-09-27 17:58:12
【问题描述】:

我想编写一个简单的详细信息格式化程序,以String 的形式显示byte[] 数据(使用String.<init>([B) 来完成脏活)。

但是,我不确定如何找到 [B 的类名以在创建格式化程序时使用。这甚至可能吗?或者,是否有另一种方法可以在调试器中将字节数组视为字符串?

【问题讨论】:

  • 如果有一种方法可以满足您的需求,那么它的输入和输出会是什么?
  • 假设我有一个字节数组:[65, 66, 67] 我希望得到“ABC”(我理解的情况对吗?我的 ASCII-fu 很弱......)跨度>
  • 确实 byte[] 不能用作详细格式化程序的键,但您可以考虑在bugs.eclipse.org/bugs/enter_bug.cgi?product=JDT component Debug 提交增强请求,因为这个想法很有意义。还提供带有 JDT 的 hexdump 选项听起来很合理。您可能想搜索此类请求是否已存在于 bugzilla 中。

标签: java eclipse debugging


【解决方案1】:
byte[].class

【讨论】:

  • 这告诉我类,但不允许我将字节数组格式化为字符串。知道如何从这里到那里吗?
【解决方案2】:

如果您的问题是如何将 [0,1,2] 的字节数组的字符串表示为“[0,1,2]”,我建议您查看 Arrays.toString(字节[])

http://java.sun.com/javase/6/docs/api/java/util/Arrays.html#toString(byte[])

【讨论】:

  • 不,我想将字节解释为 UTF-8 字符串数据。
  • 更具体地说,我想用Eclipse的detail formatter来做。
【解决方案3】:

[B 类型可以用 byte[].class 检索。

【讨论】:

    【解决方案4】:

    我不知道如何让 eclipse 的详细格式化程序自动将字节数组显示为字符串,但是您可以通过添加 new String(byteArray) 作为监视表达式来显示特定的字节数组。

    【讨论】:

    • +1 您不能将字节数组显示为字符串,但您的方法最接近问题所要查找的内容
    • 注意字符编码。 new String(bytes) 将使用平台默认字符编码,它本身可能不是正确的字符编码。
    【解决方案5】:

    您不能为 byte 等简单数据类型添加详细格式化程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 2013-06-07
      • 2016-11-24
      • 1970-01-01
      • 2012-08-07
      相关资源
      最近更新 更多