2012-04-06 123 views
47

我難住這個,我需要一些新鮮的眼睛,我不知道爲什麼這段代碼是這樣做的。字符串到字符數組Java

String string = new String(new char[] {(char) 0x01, (char) 0x02, ... ,(char) 0xFC}); 

輸出是一切應該是,直到最後數(0xFC有)返回-4, 我知道它的十六進制值,但如果我做同樣的252的十進制值,它也給我一個消極的。我希望這只是一個簡單的解決方案,我只是看不到它。

提前致謝。

+1

什麼是你想回來? – Krishna 2012-04-06 20:32:08

+0

所以你正試圖創建一個字符串_字符數組? – 2012-04-06 20:32:23

+0

'0xFC'是一個正整數; 'char'類型沒有簽名。生成的代碼點是U + 00FC - 帶Diaeresis的拉丁小寫字母U.你如何輸出字符串? – McDowell 2012-04-06 20:42:19

回答

136

到字符數組的字符串很簡單,只要

String str = "someString"; 
char[] charArray = str.toCharArray(); 

你能解釋更多關於你正在嘗試做一點點?

*更新*

如果我理解你的新評論,你可以使用一個字節數組,並提供了例子。

byte[] bytes = ByteBuffer.allocate(4).putInt(1695609641).array(); 

for (byte b : bytes) { 
    System.out.format("0x%x ", b); 
} 

利用隨後的輸出

0x65 0x10的0xf3 0x29

+0

我想發送一個包含字節數組或字符數組的數據包,以獲取特定的值給我在我的封閉網絡上的設備。我正在製作一個遙控器。只需要9個字節的數組,即可給出特定的十六進制或十進制值。 – 2012-04-06 21:22:10

+0

@CodyKeasberry我已更新答案 – Kevin 2012-04-07 04:34:35

+3

上面的一個很好的捷徑是「string」.toCharArray()。它可以爲您節省一行代碼。 – 2013-03-18 21:37:47