電子書籍の厳選無料作品が豊富!

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つ加える、みたいな決まりごとを作る書き方が思いつくんですが…

そんな記述法はあるのでしょうか?

お知恵拝借させて下さい。

A 回答 (2件)

↓でどうでしょうか?かなりベタですけど。

(コンパイル、動作未確認です。)
計算結果: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
全角スペースでインデントつけてます。
    • good
    • 1
この回答へのお礼

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

お礼日時:2008/03/21 20:57

C言語の書式付き入出力関数printfのように



JavaJ2SE 5.0より、Javaでも実装可能になりました。
Systemクラスのprintfメソッドです。
System.out.printfで表示フォーマットで
右詰めできると思います。
    • good
    • 1
この回答へのお礼

なるほど、このような方法もあったのですね…全く知りませんでした。

お礼遅くなり、本当に申し訳ありません。
ありがとうございました!!

お礼日時:2008/03/21 20:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!