在使用 Eclipse 进行 Java 开发时,我想在断点处查看字符串变量的值。
String 变量显示为[47, 110, 109, 107, 111]
,这是有道理的,因为字符串实际上是一个 ASCII 字符数组。
但是,我希望不必在每次检查字符串时都将 ASCII 值转换为字符。如何让调试器显示字符串而不是 ASCII 值数组?
如果你确定你的变量是一个字符串:
调试视图应自动将其显示为字符串。
确保您的变量确实是一个字符串。
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
来自字节的文本:这是一个示例
参考:
我以前也遇到过这种情况。我假设问题发生在您调试时的 eclipse 版本上。更改为旧版本的 eclipse 或 IntelliJ (2018) 和 jdk 8 => 问题解决了。