2017-04-06 7 views
0

私のメソッドは長方形の底(座標)の高さと幅を返すようにしたい。私はtoStringメソッドを使用していますが、私に必要な形式を教えてくれませんか?

(-3、2) 及び4の幅及び5の高さに位置する左下隅を有する長方形の場合、この方法は、正確に返すべき 「塩基:( - 3,2)w:4時間:5秒。この例では、

は//左= xと、ボトム= Y、幅=高さ= H、wは

これは私が

を有する方法であって、単一の位置5、12のスペース、および16があります
public String toString(){ 
    return String.format("%-5s%-12s%16d","base:" ,"(",this.left,",", this.bottom,")", "w:",this.width, "h:",this.height); 
} 

答えて

0

いくつかの定数文字列を定数形式文字列に補間する理由がわかりません。それがあなたが本当に望んでいることを確認できますか?

また、フォーマット指定子よりも多くの引数をString.formatに渡します。それを最初に整理してください。それまでに、あなたが得ている出力があなたが望むものと合っていない理由が明確になるはずです。

+0

私が、言うことをしようとしていることは私が手に出力されている唯一の5番、あるある「this.left」何アウトのうちの整数を入れてやろうとイムこれらのフィールドをtoStringメソッドに変換する方法を教えてください。 –

+0

5までしか表示されない理由は、 'String.format'の仕組みにあります。最初の引数format文字列を調べ、フォーマット文字列が何を求めているかを調べます。指定子があるときはいつでも、それは渡された次の引数をとり、それを出力に含めます。いくつかの引数を指定しましたが、書式指定子は引数を要求しません。 – guest

+0

うーん、どうすればいい?すべての引数は空白で表示されますか?私は探してみましたか、解決できない解決策を見つけました。誰か助けてください。 –

1

フォーマット指定子の数とパラメータの数の間には、同質である必要があります。 String.format("%-5s(%d, %d) w:%d h:%d","base:", left, bottom, width, height)よう

何かがbase:(-3, 2) w:4 h:5 ...あなたは書式指定子がCに基づいています

を提供している値に基づいて印刷されます、これを行うための最も簡単な方法の詳細

1

ためthese examplesを見て関数は、表示するすべてのテキストをString.format()の最初のパラメータに入れることです。このよう

public String toString(){ 
     return String.format("base:(%d,%d) w:%d h:%d", this.left, this.bottom, this.width, this.height); 
} 
関連する問題