整数の左側にゼロを埋め込むにはどうしたらいいですか?
java で int
を String
に変換するとき、どのようにゼロで左詰めをしますか?
私は基本的に、9999
までの整数を先頭のゼロでパッドアウトしたいのです (例: 1 = 0001
).
959
14
java で int
を String
に変換するとき、どのようにゼロで左詰めをしますか?
私は基本的に、9999
までの整数を先頭のゼロでパッドアウトしたいのです (例: 1 = 0001
).
以下のように
java.lang.String.format(String,Object...)
を使用します。のようにすると、長さ5のゼロパディングができます。16進数で出力する場合は、
"%05x"
のようにd
をx
に置き換えてください。全てのフォーマットオプションは
java.util.Formatter
の一部としてドキュメント化されています。もし、何らかの理由で1.5以前のJavaを使用している場合は、Apache Commons Langのメソッドで試してみてください。
11
を011
として印刷するとします。フォーマッターを使用できます:
"%03d "
。。![ここに画像の説明を入力してください](http://i.stack.imgur.com/u4vid.png。)。
このフォーマッターは次のように使用できます。
または、一部のJavaメソッドはこれらのフォーマッターを直接サポートしています。
このような例がありました...テストする
これをテストすると
どちらも動作しますが、私の目的にはString.Formatの方がより良く、より簡潔であると思います。
あなたの場合にパフォーマンスが重要な場合は、「String.format」関数と比較して、オーバーヘッドを減らして自分で行うことができます。
パフォーマンス。
結果。
独自の機能: 1697ms。
String.format: 38134ms。
Maven:。
サンプルコード:。
注意:。
「グアバ」は非常に便利なライブラリであり、「コレクション」、「キャッシュ」、「機能イディオム」、「通貨」、「文字列」、「プリミティブ」、「範囲」、「IO」に関連する多くの機能も提供します。
、
ハッシング、
イベントバス `など参照:GuavaExplained。
これを試してみてください。
。
上記のアプローチの多くは優れていますが、フロートだけでなく整数をフォーマットする必要がある場合があります。 これは、特に小数点の左と右の特定の数のゼロを埋める必要がある場合に使用できます。
フォーマットされたテキストを画面に直接印刷する場合。
次のように、クラスDecimalFormatを使用します。。
OUTPUT: 0000811。
次のコードでは[NumberFormat][1]を使用して、Formatterを使用する必要があります。
[1]:https://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html?bcsi_scan_64741547a7fe261b = 0& bcsi_scan_filename = NumberFormat.html。
整数と文字列で機能するコードを確認します。
最初の番号が2であると仮定します。 ゼロを追加して、最終的な文字列の長さが4になるようにします。 そのためには、次のコードを使用できます。
このアプローチの唯一の問題は、それがどのように機能するかを理解するために思考の帽子をかぶせることです。
パッケージは必要ありません:
これにより、文字列が3文字になり、4〜5個のパーツを追加するのが簡単になります。 これは決して完璧な解決策ではないことを知っています(特に大きなパッド入りの ⁇ が必要な場合)が、私はそれが好きです。