我想將字符串值(十六進制)轉換爲IP地址。我怎樣才能使用Java?將十六進制字符串轉換爲IP地址
的十六進制值:0A064156
IP:10.6.65.86
這site給了我正確的結果,但我不知道如何在我的代碼實現這一點。
它可以直接在XSLT中完成嗎?
我想將字符串值(十六進制)轉換爲IP地址。我怎樣才能使用Java?將十六進制字符串轉換爲IP地址
的十六進制值:0A064156
IP:10.6.65.86
這site給了我正確的結果,但我不知道如何在我的代碼實現這一點。
它可以直接在XSLT中完成嗎?
你可以把它分解2個字符,然後用Integer.parse(字符串,基數)轉換爲整數值
http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Integer.html#parseInt(java.lang.String,int)
您可以將您的十六進制值分成2組,然後將它們轉換爲整數。
0A = 10
06 = 06
65 = 41
86 = 56
代碼:
String hexValue = "0A064156";
String ip = "";
for(int i = 0; i < hexValue.length(); i = i + 2) {
ip = ip + Integer.valueOf(hexValue.subString(i, i+2), 16) + ".";
}
System.out.println("Ip = " + ip);
輸出:
IP = 10.6.65.86。
加上投票,你的答案實際上是教如何捕魚 – HRgiger
public String convertHexToString(String hex){
StringBuilder sb = new StringBuilder();
StringBuilder temp = new StringBuilder();
for(int i=0; i<hex.length()-1; i+=2){
String output = hex.substring(i, (i + 2));
int decimal = Integer.parseInt(output, 16);
sb.append((char)decimal);
temp.append(decimal);
temp.append(".");
}
System.out.println("Decimal : " + temp.toString());
return sb.toString();
}
您可以使用下面的方法:
public static String convertHexToIP(String hex)
{
String ip= "";
for (int j = 0; j < hex.length(); j+=2) {
String sub = hex.substring(j, j+2);
int num = Integer.parseInt(sub, 16);
ip += num+".";
}
ip = ip.substring(0, ip.length()-1);
return ip;
}
1.拆分串入長度。2.轉換的所有子到dezimal的子串。 3.在所有子串之間插入點。 – Sirko