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

问题描述:

enter image description here我做字符串的构造as--为什么这个输出是在java程序中来的?

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); 
    } 
} 

输出图像我不明白它的意思....

+0

你想做什么? – claesv 2012-02-27 11:10:15

+0

这段代码没有意义。你将一个整数数组传递给一个String对象,你期待什么,数字回来?构造函数API描述了发生了什么:http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#String(byte []) – seanhodges 2012-02-27 11:17:35

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

编辑您的控制台正在使用特定字体来呈现输出。显然,字体包含代码为5和6的字符的西装象形图。我认识到这些回到原来的IBM PC:http://www.ascii-codes.com/

+0

意味着它会产生unicode值? – 2012-02-27 11:15:59

+0

酷...我不知道这个(可能是因为我从来不敢触摸String类) – 2012-02-27 11:16:01

+0

感谢您的宝贵答案.... – 2012-02-27 11:42:29

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

+0

如何从中获得Int值? – 2012-02-27 11:16:55

+0

是否要将5,6,8连接成一个字符串? – Eduardo 2012-02-27 11:17:56

+0

我想确切知道这个String构造函数的工作原理是什么? – 2012-02-27 11:20:15

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