src/share/classes/java/util/UUID.java

Print this page

        

@@ -371,21 +371,15 @@
      * }</pre></blockquote>
      *
      * @return  A string representation of this {@code UUID}
      */
     public String toString() {
-        return (digits(mostSigBits >> 32, 8) + "-" +
-                digits(mostSigBits >> 16, 4) + "-" +
-                digits(mostSigBits, 4) + "-" +
-                digits(leastSigBits >> 48, 4) + "-" +
-                digits(leastSigBits, 12));
-    }
-
-    /** Returns val represented by the specified number of hex digits. */
-    private static String digits(long val, int digits) {
-        long hi = 1L << (digits * 4);
-        return Long.toHexString(hi | (val & (hi - 1))).substring(1);
+        return Long.toHexString((mostSigBits  >>> 32) & 0xFFFFFFFFL,      8) + '-'
+             + Long.toHexString((mostSigBits  >>> 16) & 0xFFFFL,          4) + '-'
+             + Long.toHexString( mostSigBits          & 0xFFFFL,          4) + '-'
+             + Long.toHexString((leastSigBits >>> 48) & 0xFFFFL,          4) + '-'
+             + Long.toHexString( leastSigBits         & 0xFFFFFFFFFFFFL, 12);
     }
 
     /**
      * Returns a hash code for this {@code UUID}.
      *