我需要一種將字符串「IP:PORT」轉換爲字節數組的方法。我知道如何手動格式化,但我需要一種自動執行的方法。字符串到十六進制
例IP:
77.125.65.201:8099
我不能使用 「」 .getBytes();因爲我需要下面的格式(無點和結腸):
[#1個八位字節的ip] [#2個八位字節的ip] [#3個八比特組的ip] [#4八位位組的ip] [#1 2個八位位組的端口]
爲了更好地理解:
在Java手動我可以將其設置:
byte[] testIP = { 0x4D, 0x7D, 0x41, (byte)0xC9, (byte)0x1FA3 };
我需要找到一種方法,它將以正確的格式返回一個字節數組,並在需要時將其轉換爲字節(由於Java簽名字節)。
這是因爲我已,但它不工作:
private void parseIp(String fullData){
String[] data = fullData.split(":"); // 8099
String[] ip = data[0].split("\\."); // 77 | 125 | 65 | 201
for(int i = 0; i < 4; i++){
System.out.println("---> " + toHex(ip[i]));
}
}
private String toHex(String data){
return Integer.toHexString(Integer.parseInt(data, 16));
}
一個Java字節可以存儲從-128到127,如果我們的解釋是他們無符號,我們可以存儲0到255之間有沒有辦法來存儲8099在一個字節。 – jlordo 2013-04-27 14:23:17
在你的原始字符串中是「77」十進制還是十六進制值? – 2013-04-27 14:26:05
當你說你的代碼「*不工作*」時,它實際上意味着什麼?你有什麼錯誤嗎?你沒有得到預期的結果嗎?請在您的帖子中添加所有詳細信息。 – 2013-04-27 14:35:12