我需要一种将字符串“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