4

int を 2 つの先行ゼロを持つ文字列にフォーマットする簡単で簡単な方法を探していました。このhttps://stackoverflow.com/a/4377337/47690の回答を見つけましたが、必要なもののように見えました。だから私はそれをそのように実装しました

int i = 34; //could be any value but you get the idea   
String.format("%03d", i);

しかし、Eclipse は String.format がObject[]2 番目のパラメーターに を必要とするという事実についてうめき声を上げているようです。ここで何が起こっているのですか?

4

4 に答える 4

5

の値を出力したい場合はi、次を使用できます。

System.out.printf("%03d", i);

それ以外の

System.out.println(String.format("%03d", i));

編集 :

また、Java 6 であなたのコードを試しましたが、うまくいきませんでした。そこで、printf() を使用しました。 ああ。ごめん!私はプロジェクトをきれいにし、それはうまくいきました。

Java 6 と Eclipse Helios を使用しています。

于 2013-01-24T09:31:56.787 に答える
4

プロジェクト設定を確認してください

project -> Properties -> Java Compiler -> Compiler compliance level

あなたはおそらくvarargを認識しないJava1.4を使用しています

String format(String format, Object ... args)
于 2013-01-24T09:39:52.327 に答える
1

以下は、Java 7 で正常にコンパイルおよび実行されます (Eclipse Juno SR1 はこれで問題ありません)。

public class Main {
    public static void main(String[] args) {
        int i = 42;   
        System.out.println(String.format("%03d", i));
    }
}

エラー メッセージは厄介者です。最後の引数がObject...(aka Object[]) であっても、オート ボクシングがすべてを処理します。

古いバージョンの Java や Eclipse を使用しているか、Eclipse プロジェクトのコンパイラ準拠レベルが 1.5 より前に設定されていると思われます (1.5 以降を使用している場合でも)。

于 2013-01-24T09:29:02.550 に答える
0

文字列 s = String.format("%04d", i);

このコードは、文字列にする数字の 4 桁を表すので、.. %04d を使用すると、先頭に 2 つのゼロが試行されます。

int i はプリミティブであり、その引数として期待されるオブジェクトですが、

その JVM は内部的にオブジェクト データ型に変換します。

Java実装ごとにこれを参照してください..

public static String format(String format, Object ... args) {
return new Formatter().format(format, args).toString();
}

ゼロを動的に追加するサンプル コード...

java.text.DecimalFormat をインポートします。パブリック クラス ArrayTest {

public static void main(String[] args) {
    int i = 34; //could be any value but you get the idea   
    int zeroCount = 2;

    String s = String.format("%d", i);
    int length = s.length()+zeroCount;

    System.out.println(String.format("%0"+length+"d", i));

    // second way u can achieve 
    DecimalFormat decimalFormat = new DecimalFormat();
    decimalFormat.setMinimumIntegerDigits(length);
    System.err.println(decimalFormat.format(i));
}

}

そして System.format の引数になると、無限の数を取ることができます。2 番目のパラメーターとしての varargs オブジェクトとしてのパラメーターの

この URL を確認してください http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#format%28java.lang.String,%20java.lang.Object...%29

于 2013-01-24T09:48:13.033 に答える