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