< prev index next >
src/java.base/share/classes/java/util/Formatter.java
Print this page
rev 16194 : imported patch XXXXXXX-Use-StringBuilder-appendN-method
@@ -2917,12 +2917,12 @@
boolean padRight = f.contains(Flags.LEFT_JUSTIFY);
int sp = width - cs.length();
if (padRight) {
a.append(cs);
}
- for (int i = 0; i < sp; i++) {
- a.append(' ');
+ if (sp > 0) {
+ a.appendN(' ', sp);
}
if (!padRight) {
a.append(cs);
}
return a;
@@ -3109,12 +3109,12 @@
: s.length());
// apply ALTERNATE (radix indicator for octal) before ZERO_PAD
if (f.contains(Flags.ALTERNATE))
sb.append('0');
- if (f.contains(Flags.ZERO_PAD)) {
- trailingZeros(sb, width - len);
+ if (f.contains(Flags.ZERO_PAD) && width > len) {
+ sb.appendN('0', width - len);
}
sb.append(s);
} else if (c == Conversion.HEXADECIMAL_INTEGER) {
checkBadFlags(Flags.PARENTHESES, Flags.LEADING_SPACE,
Flags.PLUS);
@@ -3124,12 +3124,12 @@
: s.length());
// apply ALTERNATE (radix indicator for hex) before ZERO_PAD
if (f.contains(Flags.ALTERNATE))
sb.append(f.contains(Flags.UPPERCASE) ? "0X" : "0x");
- if (f.contains(Flags.ZERO_PAD)) {
- trailingZeros(sb, width - len);
+ if (f.contains(Flags.ZERO_PAD) && width > len) {
+ sb.appendN('0', width - len);
}
if (f.contains(Flags.UPPERCASE))
s = s.toUpperCase(Locale.getDefault(Locale.Category.FORMAT));
sb.append(s);
}
@@ -3183,12 +3183,12 @@
// apply ALTERNATE (radix indicator for octal) before ZERO_PAD
if (f.contains(Flags.ALTERNATE)) {
len++;
sb.append('0');
}
- if (f.contains(Flags.ZERO_PAD)) {
- trailingZeros(sb, width - len);
+ if (f.contains(Flags.ZERO_PAD) && width > len) {
+ sb.appendN('0', width - len);
}
sb.append(s);
} else if (c == Conversion.HEXADECIMAL_INTEGER) {
String s = v.toString(16);
@@ -3199,12 +3199,12 @@
// apply ALTERNATE (radix indicator for hex) before ZERO_PAD
if (f.contains(Flags.ALTERNATE)) {
len += 2;
sb.append(f.contains(Flags.UPPERCASE) ? "0X" : "0x");
}
- if (f.contains(Flags.ZERO_PAD)) {
- trailingZeros(sb, width - len);
+ if (f.contains(Flags.ZERO_PAD) && width > len) {
+ sb.appendN('0', width - len);
}
if (f.contains(Flags.UPPERCASE))
s = s.toUpperCase(Locale.getDefault(Locale.Category.FORMAT));
sb.append(s);
}
@@ -3374,11 +3374,14 @@
StringBuilder va = new StringBuilder();
boolean upper = f.contains(Flags.UPPERCASE);
sb.append(upper ? "0X" : "0x");
if (f.contains(Flags.ZERO_PAD)) {
- trailingZeros(sb, width - s.length() - 2);
+ int padLen = width - s.length() - 2;
+ if (padLen > 0) {
+ sb.appendN('0', padLen);
+ }
}
int idx = s.indexOf('p');
if (upper) {
String tmp = s.substring(0, idx);
@@ -3424,11 +3427,13 @@
if (needDot) {
sb.append('.');
}
// Add zeros.
- trailingZeros(sb, prec - outPrec);
+ if (prec > outPrec) {
+ sb.appendN('0', prec - outPrec);
+ }
}
// Method assumes that d > 0.
private String hexDouble(double d, int prec) {
// Let Double.toHexString handle simple cases
@@ -3571,11 +3576,11 @@
mant.append('.');
}
// Add trailing zeros in the case precision is greater than
// the number of available digits after the decimal separator.
- trailingZeros(mant, nzeros);
+ mant.appendN('0', nzeros);
StringBuilder exp = bdl.exponent();
int newW = width;
if (width != -1) {
newW = adjustWidth(width - exp.length() - 1, f, neg);
@@ -3626,11 +3631,11 @@
mant.append('.');
}
// Add trailing zeros if the precision is greater than the
// number of available digits after the decimal separator.
- trailingZeros(mant, nzeros);
+ mant.appendN('0', nzeros);
localizedMagnitude(sb, mant, 0, f, adjustWidth(width, f, neg), l);
} else if (c == Conversion.GENERAL) {
int prec = precision;
if (precision == -1)
@@ -3738,11 +3743,11 @@
if (scale >= len) {
// 0.xxx form
mant.append("0.");
dot = true;
- trailingZeros(mant, scale - len);
+ mant.appendN('0', scale - len);
mant.append(coeff);
} else {
if (scale > 0) {
// xx.xx form
int pad = len - scale;
@@ -3752,11 +3757,11 @@
mant.append(coeff, pad, len);
} else { // scale < 0
// xx form
mant.append(coeff, 0, len);
if (intVal.signum() != 0) {
- trailingZeros(mant, -scale);
+ mant.appendN('0', -scale);
}
this.scale = 0;
}
}
} else {
@@ -3789,17 +3794,10 @@
if (newW != -1 && neg && f.contains(Flags.PARENTHESES))
newW--;
return newW;
}
- // Add trailing zeros
- private void trailingZeros(StringBuilder sb, int nzeros) {
- for (int i = 0; i < nzeros; i++) {
- sb.append('0');
- }
- }
-
private void print(Calendar t, char c, Locale l) throws IOException {
StringBuilder sb = new StringBuilder();
print(sb, t, c, l);
// justify based on width
< prev index next >