Java printf失败:UnknownFormatConversionException

时间:2012-08-12 06:12:38

标签: java exception printf

我正在尝试理解为什么我的一个printf语句失败了。下面#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 个答案:

答案 0 :(得分:1)

例外情况表明%"不是有效的格式说明符。你应该逃避第2行的%标志:

System.out.printf(" <img src=\"%sIMAGE.gif\" width=\"25%%\" height=\"25%%\" border=0>", LOCATION);

答案 1 :(得分:1)

你去吧

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 {{1}中的魅力一样工作}或" 伟大 对于'%应为%% %%

答案 2 :(得分:1)

问题在于百分号。由于%用作格式字符串。您可以将%作为前面的文字插入另一个百分比... %%

System.out.printf(" <img src=\"%sIMAGE.gif\" width=\"25%%\" height=\"25%%\" border=0>", LOCATION);

答案 3 :(得分:0)

%\"

不是有效的printf字段。