この質問が既に作成されている場合は申し訳ありません。詳細な検索を行いましたが、何もしませんでした。
今、私はそれを知っています:
String.format("%05d", price);
価格の左側にゼロを埋め込むため、価格が 25 の場合は00025になります
それらを右にパディングしたい場合、結果は25000になりますか? String.formatパターンのみ を使用してそれを行うにはどうすればよいですか?
この質問が既に作成されている場合は申し訳ありません。詳細な検索を行いましたが、何もしませんでした。
今、私はそれを知っています:
String.format("%05d", price);
価格の左側にゼロを埋め込むため、価格が 25 の場合は00025になります
それらを右にパディングしたい場合、結果は25000になりますか? String.formatパターンのみ を使用してそれを行うにはどうすればよいですか?
あなたが使用することができます:
String.format("%-5s", price ).replace(' ', '0')
フォーマットパターンのみを使用してこれを行うことはできますか?
String.format
Formatter.justify
メソッドと同じように使用しString.printf
ます。この投稿から、出力スペースがハードコーディングされていることがわかります。そのため、を使用するString.replace
必要があります。
このドキュメントを読んでみてください。Apache Commons のライブラリStringUtils
が役立つかどうかを確認してください。
私はこのようなコードを作りました:
import org.apache.commons.lang3.StringUtils;
public static void main(String[] args) {
String str = "123";
str = StringUtils.leftPad(str,10,"0"); //you can also look the rightPad function.
System.out.println(str);
}
これは、この問題に対する有効な解決策です。
public class PadRightTest {
public static void main(String[] argv) {
System.out.println("#" + rightPadZeros("mystring", 10) + "@");
System.out.println("#" + rightPadZeros("mystring", 15) + "@");
System.out.println("#" + rightPadZeros("mystring", 20) + "@");
}
public static String rightPadZeros(String str, int num) {
return String.format("%1$-" + num + "s", str).replace(' ', '0');
}
}
出力は次のとおりです。
#mystring00@
#mystring0000000@
#mystring000000000000@