为什么这个输出是在java程序中出现的?

时间:2012-02-27 11:07:49

标签: java arrays

enter image description here我将String的构造函数设为 -

class TestString {
    public static void main(String args[]) {

      int arr[]={1,5,6,8,9};

      String str3 = new String(arr,1,3);//public java.lang.String(int[], int, int);

      System.out.println(str3);
   }
}

输出在图像中我无法理解其含义....

3 个答案:

答案 0 :(得分:10)

您创建了一个由三个Unicode代码点U+0005U+0006U+0008组成的字符串,我打赌您的输出正好显示(它在我的机器上)

编辑您的控制台正在使用特定字体来呈现输出。显然,该字体包含代码为5和6的字符的套装象形图。我认为它们一直追溯到原始的IBM PC:http://www.ascii-codes.com/

答案 1 :(得分:2)

您使用字节数组构造函数创建了一个String。字节数组必须包含Unicode-points。有关unicode点和代表值的更多信息,请参阅ascii table

答案 2 :(得分:1)

它们的数组应该包含Unicode codePoints。你知道5,6和8是什么意思吗? 它将Unicode字符与您在数组中传递的代码连接起来,从偏移量1开始,长度为3。因此,偏移1是数组(5)的第二个元素。它需要3个元素:5,6和8.这些字符代表你在屏幕上看到的有趣的图形