Как дополнять числа с подчеркиванием в Java?

Как дополнять числа с подчеркиванием в Java вместо обычных нулей?

Например, я хочу, чтобы

  • 123.45 было преобразовано в ___ 123.45 и
  • 12345.67 в быть отформатировано в _12345.67
  • 0.12, чтобы быть отформатировано в _ __ _ __ .12

Я пробовал много чего, и самое близкое, что я получил, это с помощью SYMBOLS.setZeroDigit ('_');):

import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;

public class Example {

    public static void main(String[] args) {
        DecimalFormatSymbols SYMBOLS = new DecimalFormatSymbols();
        SYMBOLS.setDecimalSeparator('.');
        SYMBOLS.setGroupingSeparator(',');
        DecimalFormat OUTPUT_FORMAT = new DecimalFormat("000,000.00", SYMBOLS);

        System.out.println(OUTPUT_FORMAT.format(0.01));
        // got 000,000.01
        System.out.println(OUTPUT_FORMAT.format(0.12));
        // got 000,000.12
        System.out.println(OUTPUT_FORMAT.format(123456));
        // got 123,456.00
        System.out.println(OUTPUT_FORMAT.format(123456.78));
        // got 123,456.78
        System.out.println(OUTPUT_FORMAT.format(1234));
        // got 001,234.00
        System.out.println(OUTPUT_FORMAT.format(1234.56));
        // got 001,234.56

        SYMBOLS.setZeroDigit('_');
        OUTPUT_FORMAT = new DecimalFormat("000,000.00", SYMBOLS);
        System.out.println(OUTPUT_FORMAT.format(0.01));
        // expected ______._1 but got ___,___._`
        System.out.println(OUTPUT_FORMAT.format(0.12));
        // expected ______.12 but got ___,___.`a
        System.out.println(OUTPUT_FORMAT.format(123456));
        // expected 123,456.__ but got `ab,cde.__
        System.out.println(OUTPUT_FORMAT.format(123456.78));
        // expected 123,456.78 but got `ab,cde.fg
        System.out.println(OUTPUT_FORMAT.format(1234));
        // expected __1,234.00 or at least __1,234.__ but got __`,abc.__
        System.out.println(OUTPUT_FORMAT.format(1234.56));
        // expected __1,234.56 but got __`,abc.de
    }

}

Ну, не совсем близкое, но пустое число, если правильно отформатировано (с завершающими знаками подчеркивания): _ __ , _ __ . __

В любом случае, предложения о том, как добиться ожидаемого поведения?

5
задан Belun 4 August 2011 в 17:07
поделиться