JAL-3751 only merge strictly contiguous ranges of mappings
[jalview.git] / src / jalview / util / Format.java
index 20d228d..ce7ab6d 100755 (executable)
@@ -26,6 +26,8 @@
  */
 package jalview.util;
 
+import java.util.Arrays;
+
 /**
  * DOCUMENT ME!
  * 
@@ -664,30 +666,22 @@ public class Format
   }
 
   /**
-   * DOCUMENT ME!
+   * Returns a string consisting of n repeats of character c
    * 
    * @param c
-   *          DOCUMENT ME!
    * @param n
-   *          DOCUMENT ME!
    * 
-   * @return DOCUMENT ME!
+   * @return
    */
-  private static String repeat(char c, int n)
+  static String repeat(char c, int n)
   {
     if (n <= 0)
     {
       return "";
     }
-
-    StringBuffer s = new StringBuffer(n);
-
-    for (int i = 0; i < n; i++)
-    {
-      s.append(c);
-    }
-
-    return s.toString();
+    char[] chars = new char[n];
+    Arrays.fill(chars, c);
+    return new String(chars);
   }
 
   /**
@@ -796,8 +790,8 @@ public class Format
     {
       w = width;
     }
-    else if (((fmt == 'd') || (fmt == 'i') || (fmt == 'x') || (fmt == 'X') || (fmt == 'o'))
-            && (precision > 0))
+    else if (((fmt == 'd') || (fmt == 'i') || (fmt == 'x') || (fmt == 'X')
+            || (fmt == 'o')) && (precision > 0))
     {
       w = precision;
     }
@@ -839,7 +833,8 @@ public class Format
     double factor = 1;
     String leading_zeroes = "";
 
-    for (int i = 1; (i <= precision) && (factor <= 0x7FFFFFFFFFFFFFFFL); i++)
+    for (int i = 1; (i <= precision)
+            && (factor <= 0x7FFFFFFFFFFFFFFFL); i++)
     {
       factor *= 10;
       leading_zeroes = leading_zeroes + "0";
@@ -890,21 +885,18 @@ public class Format
     String f = "";
     int e = 0;
     double dd = d;
-    double factor = 1;
 
     if (d != 0)
     {
       while (dd > 10)
       {
         e++;
-        factor /= 10;
         dd = dd / 10;
       }
 
       while (dd < 1)
       {
         e--;
-        factor *= 10;
         dd = dd * 10;
       }
     }
@@ -914,8 +906,7 @@ public class Format
       return fixed_format(d);
     }
 
-    d = d * factor;
-    f = f + fixed_format(d);
+    f = f + fixed_format(dd);
 
     if ((fmt == 'e') || (fmt == 'g'))
     {