如何在Eclipse调试器中查看Java字符串?

时间:2012-08-21 18:17:41

标签: java eclipse

我希望在用Eclipse开发Java时在断点处查看String变量的值。

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

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

3 个答案:

答案 0 :(得分:1)

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

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

     

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

<强>参考文献:

答案 1 :(得分:1)

如果您确定您的变量是字符串:

MyString

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

DebugView

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

答案 2 :(得分:-1)

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