Add method to format hexadecimal numbers.
[jSite2.git] / src / net / pterodactylus / util / number / Hex.java
index 36cca06..246fa41 100644 (file)
@@ -21,26 +21,44 @@ package net.pterodactylus.util.number;
 
 /**
  * Conversion routines for handling hexadecimal numbers.
- * 
+ *
  * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
  */
 public class Hex {
 
        /**
         * Converts the given byte array to a hexadecimal string.
-        * 
+        *
         * @param dataBytes
         *            The bytes to convert
         * @return A string of hexadecimal numbers
         */
        public static String toHex(byte[] dataBytes) {
                StringBuilder hexString = new StringBuilder(dataBytes.length * 2);
-               for (byte dataByte: dataBytes) {
+               for (byte dataByte : dataBytes) {
                        String hexByte = "0" + Integer.toHexString(dataByte & 0xff);
                        hexString.append(hexByte.substring(hexByte.length() - 2));
                }
                return hexString.toString();
        }
 
+       /**
+        * Converts the given value to a hexadecimal string and zero-pads it to the
+        * given number of digits.
+        *
+        * @param value
+        *            The value to convert
+        * @param digits
+        *            The number of digits
+        * @return The formatted hexadecimal value
+        */
+       public static String toHex(long value, int digits) {
+               StringBuilder hexString = new StringBuilder();
+               hexString.append(Long.toHexString(value));
+               while (hexString.length() < digits) {
+                       hexString.insert(0, '0');
+               }
+               return hexString.toString();
+       }
+
 }