0

私がすることができます:

public class first{
    public static void main (String[] args){
        String message = String.format("%s, next year you'll be % +d", "Michael", 37);
        System.out.printf(message);
    }
}

動作しない: 実行時エラーが発生します:

Exception in thread "main" java.util.IllegalFormatFlagsException: Flags = '+ '
        at java.util.Formatter$FormatSpecifier.checkNumeric(Unknown Source)
        at java.util.Formatter$FormatSpecifier.checkInteger(Unknown Source)
        at java.util.Formatter$FormatSpecifier.<init>(Unknown Source)
        at java.util.Formatter.parse(Unknown Source)
        at java.util.Formatter.format(Unknown Source)
        at java.util.Formatter.format(Unknown Source)
        at java.lang.String.format(Unknown Source)
        at first.main(first.java:3)

スペース記号または + しか使用できません。それからそれは働いています。しかし、どうすれば2つを組み合わせることができますか?

4

3 に答える 3

3

使用するString.format("%s, next year you'll be +%d", "Michael", 37);

これは印刷されます、Michael, next year you'll be +37

ヒントとして、ほとんどの人はクラス ファイルを大文字にする傾向があります。つまり、First名前の代わりにfirst. もちろん、一人で作業している場合は、好きなように名前を付けたり、名前を付けたりすることができます。ただし、チームで作業を開始する場合は、形式を試して作業する必要があります。

編集:スペースが欲しいと誰かがコメントしたので、このようにスペースを入れてください。+ %d

于 2013-08-09T18:31:10.037 に答える
0

使うだけ"%s, ... + %d", "str", 37

于 2013-08-09T18:35:20.627 に答える
0

これを試して、%のエスケープを追加

String message = String.format("%%s, next year you'll be %% +d", "Michael", 37);

これでエラーは解決しますが、フォーマットを解決するには次を試してください。

String message = String.format("%s, next year you'll be +%d", "Michael", 37);

乾杯 !!

于 2013-08-09T18:36:06.507 に答える