0

次のように文字列をフォーマットしようとしています

System.out.println("unique number is :"+ number[b]);
System.out.println("unique number formatted to 28  is :"+ String.format("%-28s",number[b]).replace(' ','0'))

「数値」が 28 より短い文字列の場合は問題ありません。左側に 0 が追加されますが、文字列が 28 より長い場合は短縮されません。何か問題がありますか?

ところで、ループからの抜粋です

どうもありがとう

4

2 に答える 2

1

フォーマッタはあなたのString.

あなたは次のようなことをしなければならないでしょう:

if (str.length() > 28) {
    str = str.subString(0, 28);
}

または多分

if (str.length() > 28) {
    str = str.subString(str.length() - 28, str.length());
}

サイズを制限します。

于 2013-04-09T07:56:44.773 に答える
0

format期待どおりに動作しない理由は、java.util.Formatterクラスの javadoc から明らかです。それは言います:

「オプションのは、出力に書き込まれる文字の最小数を示す非負の 10 進整数です。」

于 2013-04-09T08:20:06.310 に答える