2016-11-04 2 views
0

私は4つのクラスからなるプログラムを持っています。ボートのスーパークラス、SailBoatとPowerBoatのサブクラス、そして私が別のセイルとパワーボートのarrayListを持っているテストプログラム。String.formatを使用してtoString()ステートメントを整列し、それらの中にコンマを入れてください

私はSailBoatクラスでこのように見えるtoString()メソッドを持っています。PowerBoatには同じサイズのセイルがあり、セイルの数はエンジンのサイズに置き換えられます。

public String toString() 
    { 
     return super.toString() + " Number of Sails = " + numSails + " Price = " + calcPrice(); 
    } 

私のテストクラスでは、私が持っているボートのArrayListをプリントアウトする必要があります。

for(Boat b: boats) 
    { 
    System.out.printf(b.toString()); 
    System.out.printf("\n"); 
    } 

これはボートの私のリストを返しますが、それがすべてで整列し、次のようになりますされていません:現在、私はこのようなことをやっている私はそれが(ように見えるしたい

Color = blue Length = 22 Engine Size = 60 Price = 12800.0 
Color = white Length = 20 Number Sails = 1 Price = 22000.0 
Color = red Length = 42 Number Sails = 3 Price = 48000.0 
Color = yellow Length = 35 Engine Size = 80 Price = 17100.0 
Color = red Length = 50 Engine Size = 120 Price = 22400.0 
Color = blue Length = 33 Number Sails = 2 Price = 37000.0 
Color = white Length = 20 Engine Size = 10 Price = 11200.0 

Color = blue Length = 22 Engine Size = *60 Price = $ 12,800.00 
Color = white Length = 20 Number Sails = *1 Price = $ 22,000.00 
Color = red Length = 42 Number Sails = *3 Price = $ 48,000.00 
Color = yellow Length = 35 Engine Size = *80 Price = $ 17,100.00 
Color = red Length = 50 Engine Size = 120 Price = $ 22,400.00 
Color = blue Length = 33 Number Sails = *2 Price = $ 37,000.00 
Color = white Length = 20 Engine Size = *10 Price = $ 11,200.00 

は、私は文字列のメソッドに上String.Formatの()を使用することになってまでだけど、例のすべては、私は、Oracleのサイトでご覧ください:*)は、パディングやスペースホルダーを表すことになっています他の場所ではma私にとっては意味がありませんし、toStringメソッドにそれらを適用することを示していません。いくつかの助けが大いに評価されるでしょう...

+0

http://stackoverflow.com/questions/13475388/generate-fixed-length-strings-filled-with-whitespaces – MikeJ

答えて

0
String color1 = "yellow"; 
int length1 = 33; 
String color2 = "red"; 
int length2 = 333; 
System.out.println(String.format("Color = %-10s Length = %5d", color1, length1)); 
System.out.println(String.format("Color = %-10s Length = %5d", color2, length2)); 

これは、あなたが試みることができる最小の例です。必要なのは、固定長のプレースホルダ(指定可能)だけです。また、マイナス記号の有無によって、テキストが左揃えまたは右揃えになることが指示されます。

+0

これは私のプログラミングクラスの1つのラボ用です。私はプログラムが動作しているが、フォーマットのために、String.formatステートメントをすべてのtoStringメソッドに適用する必要があると言います。それはあなたが上でやったことですか、あるいは帽子はただ新しい属性を作り、それをそれらに適用しますか? –

+0

@AbbeyS 'toString'メソッドで、' String.format( "MyFormat"、value1、value2、...) ' –

関連する問題