看板 java 關於我們 聯絡資訊
請問一下, 我利用sniffer擷取封包, 利用ip4.destination()函式可以回傳ip 回傳的type是byte[] 我得到的資料是→ [B@42e816 但是我不管怎麼轉換,轉回string都會是亂碼 我試著反向操作,先宣告String s = "192.168.0.1" 把它轉成byte[]可以得到 [B@42e816 不知道是不是ip4回傳的多了空格還什麼 導致亂碼~~ 網路查到好像要轉成Unicode String的樣子 ex. String (byte[] data,String enc) ←但不能用@@ 有人知道原因/解法嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.131.253
PsMonkey:==.=== 你怎麼印出那個 byte[] 的 08/06 04:45
walm20:看起來是hashcode 08/06 05:13
LPH66:那個一定是陣列內建的 .toString() = = 08/06 05:28
polomoss:印的方式 s.getByte(),可以印出來 08/06 12:47
為什麼不能連續推文(/‵Д′)/~ ╧╧ 想請問why: String s = "192.168.0.1"; System.out.println(s.getByte()); →[B@42e816 (這個長相就跟監聽封包回傳的一樣,所以我問題就是如何轉回去) System.out.println(new String(s.getByte())); →192.168.0.1 (此時轉的回去,我就想是不是封包經過傳輸有編碼的問題) 結果剛剛發現: String s = "any thing" 轉成byte[],印出來都是[B@42e816 然後我就無解了。 請問我的觀念哪邊有錯 & 這串[B@42e816到底是什麼!? 謝謝 ※ 編輯: polomoss 來自: 220.136.106.19 (08/06 13:25)
polomoss:查了好像是 toString()後的產物0.0 08/06 13:29
byte[] address = ip4.source(); String ip = ""; for (int i=0; i<4; i++) { ip += address[i] & 0xff; if (i != 3) ip += "."; } 找到解法,自問自答xd ※ 編輯: polomoss 來自: 220.136.106.19 (08/06 14:39)
PsMonkey:==.==== 真的讓你用推文... 你受得了嗎? XD 08/06 16:26
n3oanderson:[B@42e816應該是預設hascode.預設的hadecode值是 08/06 17:41
n3oanderson:memory address. 08/06 17:44
n3oanderson:/java/IandI/objectclass.html 08/06 17:46