2017-01-16 67 views
2

JavaのString.formatを使用して文字列の書式を設定しようとしています。 このような文字列を作成する必要があります:"<padding spaces> int1/int2"Java string.format複数のパラメータを持つ全幅

現在、私は次の形式を持っています:" %1$d/%2$d10"または"%1$d10/%2$"(または幅設定なしの"%1$d/%2$d")ですが、これは正しく動作しません。文字列を右に揃え、空白をスペースとして合計幅10に設定します。

私のコードのどこか他の場所に浮動小数点数を使用しています。二重整数は同じ幅にパディングする必要があります。

私は私の脳を捜したが、2つの個々の整数の代わりに全体の文字列を埋め込む方法を見つけることができない。 ヘルプをいただければ幸いです!

+0

恩赦私の携帯の書式 – kwantuM

答えて

1

使用して最初の二重整数文字列を作成します。そして、10の幅と文字列dintsをフォーマット

int one = 1; 
int two = 2; 
String dints = String.format("%d/%d", one, two); 

を:

String whatYouWant = String.format("%10s", dints); 

whatYouWant出力すべき印刷:

 1/2 

をあなたにたとえば、次のように、読み込み可能性を犠牲にして、1回の呼び出しでそれを実行することもできます。

String whatYouWant = String.format("%10s", String.format("%d/%d", one, two)); 

か短い:

String whatYouWant = String.format("%10s", one + "/" + two); 
+0

だから、1回の呼び出しでそれを行う方法はありませんか?また、ストリングがフロートバージョンと同じ幅になるようにするには、2番目のステップで9のパディングを使用する必要があります。なぜ説明できますか?どうもありがとう! – kwantuM

+1

あなたの最初の質問に答えるために私の答えが更新されました。なぜ9のパディングを使用しなければならないのか正確にはわかりません。恐らく '%10s 'の前にスペースがありますが、私はそうではありません。だからあなたの書式文字列は ''%10s "'ですが、私のものは ''%10s "'です。 –

+0

バグは本当にどこかにありました。コードは正常に動作しています – kwantuM

関連する問題