Java: Literal percent sign in printf statement

Domenic picture Domenic · Nov 10, 2009 · Viewed 118.1k times · Source

I'm trying to add an actual percent sign into a printf statement in Java and I'm getting the error:

lab1.java:166: illegal escape character
                System.out.printf("%s\t%s\t%1.2f\%\t%1.2f\%\n",ID,pattern,support,confidence);
                                                 ^
lab1.java:166: illegal escape character
                System.out.printf("%s\t%s\t%1.2f\%\t%1.2f\%\n",ID,pattern,support,confidence);
                                                          ^
2 errors

I can't figure out how to put an actual percent sign into my printf? I thought using \% to escape it would work, but it isn't.

Any ideas?

Answer

soulmerge picture soulmerge · Nov 10, 2009

The percent sign is escaped using a percent sign:

System.out.printf("%s\t%s\t%1.2f%%\t%1.2f%%\n",ID,pattern,support,confidence);

The complete syntax can be accessed in java docs. This particular information is in the section Conversions of the first link.

The reason the compiler is generating an error is that only a limited amount of characters may follow a backslash. % is not a valid character.