<< Daredevil SKKとインクリメンタルサーチ | Home | Connection.isValid() >>
PR: 転職    お墓    エコ    通販    結婚相談所    シルバー    質屋    葬式    漫画    エステサロン   

%sの幅指定に0は許されない。

階層構造を表示する時、インデントを付けたい時に、今までは、

void print(Node node, int indent) {
    StringBuffer buf = new StringBuffer();
    for (int i = 0; i < indent; ++i)
        buf.append(' ');
    System.err.println
        (buf.toString() + node);
...
}

みたいなことをして、空白文字を連ねて作っていたのだけど、そういえば、printf()があったなぁと思って、

    System.err.printf
        ("%" + indent + "%s%s%n", "", node);

としたら、

Exception in thread "main" java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags = 0
	at java.util.Formatter$FormatSpecifier.failMismatch(Formatter.java:3988)
	at java.util.Formatter$FormatSpecifier.checkBadFlags(Formatter.java:2904)

0は許されないみたいだ。惜しい。




コメント追加 トラックバック送信
このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8