Java: Porcentaje literal iniciar sesión declaración printf
Estoy tratando de agregar un signo de porcentaje real en una instrucción printf en Java y estoy obteniendo el 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
¿No puedo averiguar cómo poner un signo de porcentaje real en mi printf? Pensé que usar \% para escapar funcionaría, pero no lo es.
¿Alguna idea?
3 answers
El signo de porcentaje se escapa usando un signo de porcentaje:
System.out.printf("%s\t%s\t%1.2f%%\t%1.2f%%\n",ID,pattern,support,confidence);
La sintaxis completa se puede acceder en java docs de sun. Esta información en particular se encuentra en la sección Conversions
del primer enlace.
La razón por la que el compilador está generando un error es que solo una cantidad limitada de caracteres puede seguir una barra invertida. %
no es un carácter válido.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-10 14:57:49
El signo de porcentaje escapado es el doble por ciento (%%):
System.out.printf("2 out of 10 is %d%%", 20);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-23 14:47:09
Puede usar StringEscapeUtils de Apache Commons Logging utility o escape manualmente usando código para cada carácter.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-24 19:47:49