Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

文字表示の揃え方

System.out.println("名前"+"\t"+"身長"+"\t"+"体重"+"\t"+"生年月日");
System.out.print("田中 真
一"+"\t"+"178cm"+"\t"+"58.4kg"+"\t"+"1980/4/20");

これであれば、

名前 身長 体重 生年月日
田中真一 178cm 58.4kg 1980/4/20

と表示されるのですが

名前       身長      体重     生年月日
田中真一 178cm 58.4kg 1980/4/20

このように縦もそろえたい場合どうすればよいのでしょうか
初心者で困ってます。 宜しくお願いします。

2

回答

33943

閲覧

2件の回答

評価

130

System.outへの出力で桁をそろえるなら、formatを使う
とよいです。

System.out.format("%-5s %5.1f\n", "abc", 10.1);
//"abc"を左詰め5文字で、10.1を全体5文字、少数以下
を1文字で出力。あまった文字数は半角空白文字を補っ
て出力してくれる。
結果==>
abc   10.1

ただこのメソッドは表示幅ではなく文字数を揃えるので
あって全ての文字で表示幅=文字数となるような文化圏
のプログラマーには自然なのですが日本語だと全角と半
角の文字で表示幅が違うことに注意して使う必要があり
ます。例えば全角文字を出力する際には表示幅=文字数
×2と考えて幅を調整する工夫をします。

評価

20

fixed pitchのフォントに限定すれば2014-08-01 
21:06:35でいい。
しかし、厳密に言えば、間に半角スペースを挟んで位置
合わせできるかは出力先による。
proportionalが当たり前になった今の時代、出力先が完
全なfixed pitchと言い切ることができんからだ。
fixed pitchであっても、小数点以下の捉え方によって
ズレてしまうことがある。

正確を期すなら、Excelのように、個々の要素について
なんらかの方法で書き出し位置を指定する方法が必要に
なる。
その方法が提供されてない場所だと、位置合わせはでき
ないかもしれない。

>初心者で困ってます。
「方法が見つからなくて」だろう。初心者を理由にする
べきではない。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。