• 締切済み

フォーマット処理について

int n = 0; String d = new String(new DecimalFormat("####").format(n)); System.out.println(d); 上記処理を実行すると、 何も表示されないことを期待したのですが、 0 と表示されました。 0 が表示されないために、"0" の時、"" に置き換えることで 間に合わせたのですが、0 が表示されないために もっといい方法がありますでしょうか。 宜しくお願い致します。

みんなの回答

  • tekebon
  • ベストアンサー率62% (36/58)
回答No.1

他の数値のときに特に書式がないのであれば、 String d = (n==0) ? "" : String.valueOf(n); ではいかがでしょうか?

kttn
質問者

お礼

返事がおくれてしまい失礼しました。 ?と:による判定も簡潔ですね。 書式指定も加えて、 int n = 1000; String d = (n==0) ? "" : new String(new DecimalFormat("#,###").format(n)); とすることも可能ですね。 ただ、"#####" という書式指定で、なぜゼロの時、"0" が表示されるのかなと思っています。どこかが間違っているのか。 ゼロをヌル表示するニーズがないんでしょうかね。 ありがとうございました。

関連するQ&A