6

次を使用してスペースを埋めることができることを知っています:

String.format("%6s", "abc"); // ___abc ( three spaces before abc

しかし、私は生産する方法を見つけることができないようです:

000abc

編集:

%06s私はこれを尋ねる前に試しました。より多くの(未試行の)回答が表示される前にお知らせします。

現在私は持っています:String.format("%6s", data ).replace(' ', '0' ) しかし、もっと良い方法が存在するに違いないと思います。

4

5 に答える 5

7

コードがはるかに読みやすくなるため、このような文字列操作タスクには Apache Commons Lang のStringUtilsを使用することを検討する必要があります。あなたの例はStringUtils.leftPad("abc", 6, ' ');

于 2011-05-30T20:02:25.060 に答える
1

ぜひ、この種のものに適したライブラリを見つけて、ピカピカの新しいツールボックスに何が入っているかを学んでください。私は Apache CommonsよりもGuavaを好みます。この場合、それらは同等です。

Strings.padStart("abc",6,'0');
于 2011-07-09T03:36:42.953 に答える
1

独自の static-utility メソッドをロールしてみてください

public static String leftPadStringWithChar(String s, int fixedLength, char c){

    if(fixedLength < s.length()){
        throw new IllegalArgumentException();
    }

    StringBuilder sb = new StringBuilder(s);

    for(int i = 0; i < fixedLength - s.length(); i++){
        sb.insert(0, c);
    }

    return sb.toString();
}

そして、それをそのまま使用します

System.out.println(leftPadStringWithChar("abc", 6, '0'));

出力

000abc
于 2011-05-30T22:36:34.967 に答える
0

速くて汚い(「000 .... 00」文字列の長さをサポートする最大長として設定します):

public static String lefTpadWithZeros(String x,int minlen) {
   return x.length()<minlen ? 
       "000000000000000".substring(0,minlen-x.length()) + x : x;     
}
于 2011-05-30T20:43:11.723 に答える
-1

これがあなたが探しているものだと思います。

String.format("%06s", "abc");
于 2011-05-30T19:57:10.413 に答える