Die Methode Integer.parseInt(String)
, zur Umwandlung eines Strings in ein int, dürfte den meisten Java Programmierern geläufig sein. Wie konvertiert man allerdings einen Hex String in ein int?
Auch dafür kann man die Methode parseInt
benutzen:
String hexString="ff"; int intValue=Integer.parseInt(hexString,16);
Ein Beispiel zur sinnvollen Anwendung wäre z.B. die Formatierung einer hexadezimalen Netzmaske in das typische durch Punkt getrennte Dezimale Format:
/** * wandelt das hexadezimale Format einer Netzmaske * in ein dezimales Format um. * Bsp: fffffe00 -> 255.255.254.0 * tritt dabei ein Fehler auf, wird keine Umwandlung vorgenommen * * @return */ public String getNetmaskDecimalString() { String out=""; try { StringBuffer netmaskString = new StringBuffer(""); for (int i = 0; i < this.netmask.length(); i+=2) { String subString=this.netmask.substring(i,i+2); int subSet=Integer.parseInt(subString,16); netmaskString.append(subSet+"."); } out=netmaskString.toString().substring(0,netmaskString.length()-1); } catch (Exception e) { out=this.netmask; } return out; }