• ベストアンサー

コマンドプロンプト内で右揃え表示がしたい!

Javaをはじめたばかりの者です。 現在、二乗・三乗を計算して簡単な表の様に表示されるプログラムを作っています。コマンドプロンプトで、 1 1 1 2 4 8 3 9 27 4 16 64 という様に表示されるのですが、これを 1 1 1 2 4 8 3 9 27 4 16 64 という風に表示したいのです。(ここでは綺麗に表示されていませんが、要は右揃えにしたいのです。) ただし、桁が大きくなっても計算できるプログラムでないとダメなので、1つずつSystem.out.print(" ");を二乗と三乗の間に挟んで書くのはNGです。 また、format?print?(←これはアプレットの時の話なのでしょうか?今回の事に関係あるのかわかっていません…)もNGという制約があります。 他に、何か方法はあるのでしょうか? イメージとしては、数字が何桁なら(=1~9、10~99など指定?)スペースを1つ加える、みたいな決まりごとを作る書き方が思いつくんですが… そんな記述法はあるのでしょうか? お知恵拝借させて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

↓でどうでしょうか?かなりベタですけど。(コンパイル、動作未確認です。) 計算結果:1乗、2乗、3乗の計算結果 桁数:何桁にあわせるか private String スペース前埋め(int 計算結果,int 桁数){   StringBuffer rtn = new String(String.valueOf(計算結果));      for(int i = 0;i <= 桁数;i++){     rtn.insert(0," ");   }      return rtn.substring(rtn.length()-(桁数+1),rtn.length()); } java 1.5以降ならStringBuilder 全角スペースでインデントつけてます。

curi
質問者

お礼

お礼がまことに遅くなってしまい、本当に申し訳ありませんでした。 非常にわかりやすかったです、ご回答ありがとうございました!!

その他の回答 (1)

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.2

C言語の書式付き入出力関数printfのように ↓ JavaJ2SE 5.0より、Javaでも実装可能になりました。 Systemクラスのprintfメソッドです。 System.out.printfで表示フォーマットで 右詰めできると思います。

curi
質問者

お礼

なるほど、このような方法もあったのですね…全く知りませんでした。 お礼遅くなり、本当に申し訳ありません。 ありがとうございました!!