1

在使用 Eclipse 进行 Java 开发时,我想在断点处查看字符串变量的值。

String 变量显示为[47, 110, 109, 107, 111],这是有道理的,因为字符串实际上是一个 ASCII 字符数组。

但是,我希望不必在每次检查字符串时都将 ASCII 值转换为字符。如何让调试器显示字符串而不是 ASCII 值数组?

4

3 回答 3

1

如果你确定你的变量是一个字符串:

我的字符串

调试视图应自动将其显示为字符串。

调试视图

确保您的变量确实是一个字符串。

于 2012-08-21T18:53:15.727 回答
1

string通过创建字符串对象的新实例,尝试将数组转换为具有正确编码的 a:

String s = new String(bytes,"ASCII");
System.out.println(s);

这是一个简短的示例来演示:

    String example = "This is an example";
    byte[] bytes = example.getBytes();

    System.out.println("Text : " + example);
    System.out.println("Text [Byte Format] : " + bytes);
    System.out.println("Text [Byte Format] : " + bytes.toString());

    String s = null;
    try {
        s = new String(bytes, "ASCII");
    } catch (UnsupportedEncodingException ex) {
        Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }
    System.out.println("Text from bytes: " + s);

输出:

文字:这是一个例子

文本[字节格式]:[B@187aeca

文本[字节格式]:[B@187aeca

来自字节的文本:这是一个示例

参考:

于 2012-08-21T18:19:14.247 回答
-1

我以前也遇到过这种情况。我假设问题发生在您调试时的 eclipse 版本上。更改为旧版本的 eclipse 或 IntelliJ (2018) 和 jdk 8 => 问题解决了。

于 2020-09-29T04:01:31.383 回答