2009-02-14 9 views
17

मुझे स्कूल में किसी भी गंभीर निम्न स्तर के प्रोग्रामिंग पाठ्यक्रम लेने का मौका नहीं मिला है। (मुझे पता है कि मुझे वास्तव में बेहतर प्रोग्रामर होने के लिए "पीछे के दृश्य" सीखने पर जाना चाहिए।) मैं जावा की सुविधाओं की सराहना करता हूं, जिसमें System.out.print कथन में कुछ भी छड़ी करने की क्षमता शामिल है। हालांकि, क्या कोई कारण है कि आप इसके बजाय System.out.printf का उपयोग करना चाहते हैं?जावा में "प्रिंट" के बजाय "printf" का उपयोग करने का कोई अच्छा कारण है?

साथ ही, क्या मुझे "असली एप्लिकेशन" में प्रिंट कॉल से बचना चाहिए? किसी प्रकार के UI फ़ंक्शन का उपयोग करके क्लाइंट के डिस्प्ले पर संदेश प्रिंट करना शायद बेहतर है, है ना?

उत्तर

26

PrintStream वर्ग के printf विधि string formatting सी

में printf समारोह printf के लिए स्वरूपण Formatter class' formatting syntax का उपयोग करता है के समान प्रदान करता है।

जब एक लाइन जो स्ट्रिंग संयोजन का उपयोग कर थकाऊ हो सकता है में कई चर प्रदर्शित printf विधि विशेष रूप से उपयोगी हो सकता है:

int a = 10; 
int b = 20; 

// Tedious string concatenation. 
System.out.println("a: " + a + " b: " + b); 

// Output using string formatting. 
System.out.printf("a: %d b: %d\n", a, b); 

इसके अलावा, Java अनुप्रयोगों writting जरूरी जीयूआई अनुप्रयोगों लिख मतलब यह नहीं है, इसलिए जब लेखन कंसोल अनुप्रयोग, print, println, printf और अन्य फ़ंक्शन जो System.out पर आउटपुट का उपयोग करेंगे।

+0

एक बेहतर उदाहरण% + x.yf का उपयोग कर एक फ़्लोटिंग पॉइंट होगा, जहां एक्स और वाई अलग-अलग संख्याएं हैं। – Calyth

+3

क्या कोई प्रदर्शन प्रभाव है? –

2

यह बेहतर है कि आपको अपने फ़्लोटिंग-पॉइंट नंबरों की सटीकता को नियंत्रित करने की आवश्यकता है, पैडिंग आदि करें। System.out.print सभी प्रकार की चीजें मुद्रित कर सकता है, लेकिन आप परिशुद्धता और पैडिंग के ठीक नियंत्रण नहीं कर सकते इसके साथ।

3

आमतौर पर एक "असली" एप्लिकेशन में आप java.util.Logging या कॉमन्स लॉगिंग जैसे लॉगिंग सिस्टम को लिखेंगे, जिसमें वर्बोसिटी के विभिन्न स्तरों को लॉग करने की क्षमता है (यानी "डीबग" मोड, जो अक्षम हो जाएगा एक उत्पादन वातावरण में)। हालांकि कभी-कभी त्वरित और गंदे अस्थायी डिबगिंग के लिए System.out.println() चीजों को करने का सबसे आसान तरीका है (मान लें कि आपका रनटाइम पर्यावरण कहीं भी मानक आउटपुट डंप करता है जहां आप इसे पढ़ सकते हैं)।

मुझे यह भी उल्लेख करना चाहिए कि आप हमेशा एक प्रारूप और परिवर्तनीय तर्क सूची का उपयोग कर स्ट्रिंग बनाने के लिए "स्ट्रिंग.फॉर्मैट()" का उपयोग कर सकते हैं (फिर इस स्ट्रिंग को लॉगिंग विधि या System.out.println में पास करें)। स्ट्रिंग में एक साथ चर के एक गुच्छा को संयोजित करने से यह अक्सर अच्छा होता है।

2

यदि अधिकांश वास्तविक कार्यक्रम, लॉगिंग का उपयोग किया जाता है। लॉगिंग कॉन्फ़िगरेशन के माध्यम से डीबग संदेशों को चालू/बंद किया जा सकता है। उदाहरण के रूप में log4j देखें।

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

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