1

次のようなフォーマッタで整数を左パディングできることはわかっています。

String.format("%7d", 234);   // "    234"
String.format("%07d", 234);  // "0000234"
String.format("%015d", 234); // "0000000000000234"

しかし、ゼロをドットに置き換える方法 (プレーン テキストのコンテンツ インデックスなど) はありますか?

String.format("%.13d", 234); // doesn't work

私はこれを作りたい:

..........234

ループを使用してドットを追加できることはわかっていますが、フォーマッタでこれを行う方法があるかどうか知りたいです。

4

4 に答える 4

3

そのような埋め込みは組み込まれていないと思いますが.、スペースを埋め込んでから置き換えることができます。

 String.format("%15d", 234).replaceAll(' ', '.');
于 2011-05-30T21:26:36.657 に答える
1

これを行う別の方法は、Apache Commons Lang lib を使用することです。 http://commons.apache.org/lang/api-release/org/apache/commons/lang/StringUtils.html#leftPad%28java.lang.String,%20int,%20char%29

grundprinzip はすでにそれを指摘しました...

于 2011-05-30T21:24:39.547 に答える
1

フォーマッタだけではどうにもなりませんが、

String.format("%015d", 234).replaceFirst("0*","\.");

うまくやるべきです。

(当然のことながら、文字列で何かを行う必要があります。これは String オブジェクトを生成し、これは何にも代入されないため、その後消えます。)

アップデート

くそー、*正規表現の繰り返しを忘れました。

于 2011-05-30T21:19:30.017 に答える
0

手動で行うことができます。美しくはありませんが、機能します。

String str = Integer.toString( 234 );
str = "...............".substring( 0, Math.max( 0, 15 - str.length() ) ) + str;
于 2011-05-30T21:27:42.053 に答える