2009-11-10 11 views
104

मैं जावा में एक printf बयान में एक वास्तविक प्रतिशत चिह्न जोड़ने की कोशिश कर रहा हूँ और मैं त्रुटि हो रही है:जावा: printf बयान में शाब्दिक प्रतिशत चिह्न

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 

मैं समझ नहीं कैसे कर सकते हैं मेरे printf में एक वास्तविक प्रतिशत संकेत डाल दिया? मैंने सोचा कि बचने के लिए \% का उपयोग करना काम करेगा, लेकिन ऐसा नहीं है।

कोई विचार?

उत्तर

158

प्रतिशत चिह्न एक प्रतिशत चिह्न का उपयोग कर बच रहा है:

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

complete syntaxsun's java docs में पहुँचा जा सकता है। यह विशेष जानकारी पहले लिंक के अनुभाग Conversions में है।

संकलक एक त्रुटि उत्पन्न करने का कारण यह है कि केवल characters की सीमित मात्रा बैकस्लैश का पालन कर सकती है। % मान्य वर्ण नहीं है।

81

बच प्रतिशत चिह्न डबल प्रतिशत (%%) है:

System.out.printf("2 out of 10 is %d%%", 20); 
2

आप उपयोगिता लॉगिंग अपाचे कॉमन्स से StringEscapeUtils का उपयोग करें या हर किरदार के लिए कोड का उपयोग कर मैन्युअल रूप से बच सकते हैं।

+0

'कॉमन्स-टेक्स्ट' से 'स्ट्रिंगएस्केप यूटिल्स' का उपयोग करना चाहिए, क्योंकि 'commons-lang3' से एक को बहिष्कृत किया गया है। –

संबंधित मुद्दे