जावा: प्रिंटफ स्टेटमेंट में शाब्दिक प्रतिशत पर हस्ताक्षर


138

मैं जावा में प्रिंटफ़ स्टेटमेंट में एक वास्तविक प्रतिशत चिह्न जोड़ने की कोशिश कर रहा हूं और मुझे त्रुटि मिल रही है:

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

मैं यह पता नहीं लगा सकता कि मेरे प्रिंट में वास्तविक प्रतिशत चिह्न कैसे लगाया जाए? मैंने सोचा कि यह काम करने के लिए \% का उपयोग करेगा, लेकिन यह नहीं है।

कोई विचार?

जवाबों:


197

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

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

पूरा वाक्य रचना में पहुँचा जा सकता है जावा डॉक्स । यह विशेष जानकारी अनुभाग में हैConversions पहले लिंक में है।

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


102

बच गए प्रतिशत का प्रतिशत दोगुना है (%%):

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

2

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


उपयोग करना चाहिए StringEscapeUtilsसेcommons-text , क्योंकि एक से commons-lang3निकाला गया है।
— एरिक वांग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.