6

以下のコードでこの出力が得られる理由を誰かに説明してもらえますか?

1.2
null

次のコードを実行します。

String positive = "1.2+";
String negative = "1.2-";
DecimalFormat format = new DecimalFormat("0.0");
format.setPositiveSuffix("+");
format.setNegativeSuffix("-");  
format.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.US));
System.out.println(format.parse(positive, new ParsePosition(0)));
System.out.println(format.parse(negative, new ParsePosition(0)));

これは機能しますが、パターンの繰り返しは好きではありません:

String positive = "1.2+";
String negative = "1.2-";
DecimalFormat format = new DecimalFormat("0.0+;0.0-");  
format.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.US));
System.out.println(format.parse(positive, new ParsePosition(0)));
System.out.println(format.parse(negative, new ParsePosition(0)));

サフィックスは解析に使用するためのものではありませんか?

4

1 に答える 1

2

javadocで指定されているように:

負のサブパターンはオプションです。存在しない場合は、ローカライズされたマイナス記号(ほとんどのロケールでは「-」)が前に付いた正のサブパターン

たとえば、パーサーは「-1.2-」を待機しているため、次の行を追加する必要があります。

format.setNegativePrefix("");

良い1日を !

于 2012-07-04T06:53:52.313 に答える