通常のゼロではなく、Javaでアンダースコアを使用する方法は?例えばJavaでアンダースコアを使用する方法
私は
- 123.45が_にフォーマットされるために_12345.67
- 0.12にフォーマットされるために123.45と
- 12345.67を___ためにフォーマットされたい __ _ __ .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
}
}
まあ、本当に近いが、空の番号(末尾のアンダースコア付き)フォーマットされ、右の場合: _ __ 、_ __。とにかく
__ 、期待される動作を取得する方法についての提案ですか? num
'DecimalFormatSymbols.setZeroDigit'は、文字をゼロ**とそれに続く他のすべての数字に設定するために使用されます**。 '_'の後に' ___、___._ 'の代わりに' ___、___._ ''が表示されている理由です。編集:書式設定は機能しませんが、私が推測するポイントを得ます。 –
はい、私はsetZeroDigitの仕組みを知っていますが、期待通りの回避策を求めていました – Belun