int total_digits = Math.max(minimumIntegerDigits, groupingUsed ? groupingSize + 1 : 0);
int total_digits = Math.max(minimumIntegerDigits, groupingUsed ? groupingSize + 1: groupingSize);
	private final String computePattern(DecimalFormatSymbols syms) {		StringBuffer mainPattern = new StringBuffer();		// We have to at least emit a zero for the minimum number of		// digits.  Past that we need hash marks up to the grouping		// separator (and one beyond).		int total_digits = Math.max(minimumIntegerDigits, groupingUsed ? groupingSize + 1 : 0);		for (int i = 0; i < total_digits - minimumIntegerDigits; ++i)			mainPattern.append(syms.getDigit());		for (int i = total_digits - minimumIntegerDigits; i < total_digits; ++i)			mainPattern.append(syms.getZeroDigit());		// Inserting the gropuing operator afterwards is easier.		if (groupingUsed)			mainPattern.insert(mainPattern.length() - groupingSize, syms.getGroupingSeparator());		// See if we need decimal info.		if (minimumFractionDigits > 0 || maximumFractionDigits > 0 || decimalSeparatorAlwaysShown)			mainPattern.append(syms.getDecimalSeparator());		for (int i = 0; i < minimumFractionDigits; ++i)			mainPattern.append(syms.getZeroDigit());		for (int i = minimumFractionDigits; i < maximumFractionDigits; ++i)			mainPattern.append(syms.getDigit());		if (useExponentialNotation) {			mainPattern.append(syms.getExponential());			for (int i = 0; i < minExponentDigits; ++i)				mainPattern.append(syms.getZeroDigit());			if (minExponentDigits == 0)				mainPattern.append(syms.getDigit());		}		String main = mainPattern.toString();		String patChars = patternChars(syms);		mainPattern.setLength(0);		quoteFix(mainPattern, positivePrefix, patChars);		mainPattern.append(main);		quoteFix(mainPattern, positiveSuffix, patChars);		if (negativePrefix != null) {			quoteFix(mainPattern, negativePrefix, patChars);			mainPattern.append(main);			quoteFix(mainPattern, negativeSuffix, patChars);		}		return mainPattern.toString();	}