1

printf ステートメントの 1 つが失敗する理由を理解しようとしています。以下の #1 は問題ありませんが、#2 は最後の例外で失敗します。何が原因ですか?

0       String LOCATION = "http://www.mywebsite.web/";
1       System.out.printf(" <img src=\"%sIMAGE.gif\">", LOCATION);   
2       System.out.printf(" <img src=\"%sIMAGE.gif\" width=\"25%\" height=\"25%\" border=0>", LOCATION);

Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '"'
    at java.util.Formatter.checkText(Formatter.java:2519)
    at java.util.Formatter.parse(Formatter.java:2501)
    at java.util.Formatter.format(Formatter.java:2430)
    at java.io.PrintStream.format(PrintStream.java:937)
    at java.io.PrintStream.printf(PrintStream.java:838)
    at MyCode.main(MyCode.java:292)

これを引き起こしているアイデアはありますか?

4

4 に答える 4

3

どうぞ

String LOCATION = "http://www.mywebsite.web/";
System.out.printf(" <img src='%sIMAGE.gif'>", LOCATION);   
System.out.printf(" <img src='%sIMAGE.gif' width='25%%' height='25%%' border=0>", LOCATION);

私は(簡略化されたように見えます)に置き換え"まし。 の場合、次のようにエスケープする必要があります'html "'
%%%%%

于 2012-08-12T06:30:44.657 に答える
2

問題はパーセント記号にあります。% は書式文字列として使用されるためです。% を別のパーセントの前にリテラルとして挿入できます... %%

System.out.printf(" <img src=\"%sIMAGE.gif\" width=\"25%%\" height=\"25%%\" border=0>", LOCATION);
于 2012-08-12T06:37:19.457 に答える
1

例外は、それ%"が有効な書式指定子ではないことを示しています。%2 行目で記号をエスケープする必要があります。

System.out.printf(" <img src=\"%sIMAGE.gif\" width=\"25%%\" height=\"25%%\" border=0>", LOCATION);
于 2012-08-12T06:16:27.103 に答える
0
%\"

有効な printf フィールドではありません。

于 2012-08-12T06:16:16.930 に答える