我正在尝试理解为什么我的一个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)
任何想法导致了什么?
答案 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字段。