2012-02-27 98 views
-2

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

回答

10

您已經創建了由三個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

1

它們的數組應該包含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

2

您使用字節數組構造函數創建了一個String。字節數組必須包含Unicode點。請參閱ascii table以獲取有關unicode點的更多信息並獲取有代表性的值。