S07L39 – जावा में प्रिंटफ, जावा में स्ट्रिंग फॉर्मेटिंग दस्तावेज

Java फ़ॉर्मेटिंग with printf( ) and String.format( )

Java में आउटपुट को फ़ॉर्मेट करने के लिए एक आवश्यक गाइड

परिचय

Java आउटपुट को फ़ॉर्मेट करने के लिए शक्तिशाली और लचीले उपकरण प्रदान करता है। चाहे आप संख्यात्मक मान, strings, या यहाँ तक कि dates और times प्रिंट कर रहे हों, printf( ) method और इसका साथी, String.format( ) method, आपके आउटपुट की उपस्थिति को नियंत्रित करने के लिए कई विकल्प प्रदान करते हैं। यह लेख Java के फ़ॉर्मेटिंग सिस्टम के मूल तत्वों—जिसमें इसका format string, flags, चौड़ाई, सटीकता, और conversion characters शामिल हैं—को समझाता है और इन सुविधाओं का उपयोग करने का तरीका उदाहरणों और एक sample program के माध्यम से प्रदर्शित करता है।

printf( ) method का अवलोकन

Java में, System.out.printf( ) method कंसोल पर एक फ़ॉर्मेटेड string लिखता है। सबसे सरल रूप में, आप इसे इस प्रकार उपयोग कर सकते हैं:

इस method की कुंजी format string और इसके साथ आने वाले arguments हैं। Format string में literal text के साथ-साथ format specifiers शामिल होते हैं, जो यह दर्शाते हैं कि प्रत्येक argument को कैसे फ़ॉर्मेट किया जाना चाहिए।

Format String को समझना

Java में, एक format string दो मुख्य घटकों से मिलकर बनता है:

  • Literal characters – जो जैसा लिखा है वैसा ही प्रिंट होता है।
  • Format specifiers – जो arguments के रूप में पास किए गए data values को फ़ॉर्मेट करने का तरीका परिभाषित करते हैं।

प्रत्येक format specifier निम्न सामान्य क्रम का पालन करता है:

(नोट: accolades {} में लिखी वस्तुएँ वैकल्पिक पैरामीटर हैं।)

Format Specifier के घटक

  1. Flags:
    Flags आउटपुट को कस्टमाइज़ करते हैं, और सबसे सामान्य रूप से उपयोग किए जाने वाले कुछ flags में शामिल हैं:
    • -  : डिफ़ॉल्ट राइट-जस्टिफिकेशन की बजाय आउटपुट को Left-justify करना।
    • +  : सकारात्मक संख्याओं के लिए plus sign शामिल करना (हमेशा plus या minus sign उपस्थित रहेगा)।
    • 0  : spaces के बजाय संख्यात्मक मानों के लिए zeroes से padding करना।
    • ,  : comma grouping separator का उपयोग करना (विशेषकर 1000 से बड़े नंबरों के लिए उपयोगी)।
    • (space) : सकारात्मक संख्याओं से पहले एक खाली स्थान दिखाना, या नकारात्मक संख्याओं के लिए minus sign।
  2. Width:
    चौड़ाई specifier यह निर्धारित करता है कि प्रिंट किए जाने वाले न्यूनतम अक्षरों की संख्या कितनी होनी चाहिए। यह फ़ील्ड प्रत्येक आउटपुट value के लिए आवंटित स्थान निर्धारित करता है। संख्यात्मक मानों को फ़ॉर्मेट करते समय अतिरिक्त अक्षरों (जैसे comma या decimal point) का ध्यान रखना आवश्यक है।
  3. Precision:
    सटीकता का उद्देश्य conversion type पर निर्भर करता है। Floating-point संख्याओं के लिए, यह decimal point के बाद दिखाए जाने वाले अंकों की संख्या निर्धारित करता है; strings के लिए, यह प्रिंट किए जाने वाले अक्षरों की संख्या सीमित कर सकता है। इन दोनों ही मामलों में, संख्याओं को निर्दिष्ट सटीकता के अनुसार round किया जा सकता है।
  4. Conversion Characters:
    Conversion characters यह निर्धारित करते हैं कि data type का फ़ॉर्मेट कैसा होगा। उदाहरण में शामिल हैं:
    • d  : Decimal integer (byte, short, int, और long के साथ काम करता है)
    • f  : Floating-point number (float और double पर लागू)
    • c  : Character (Capital C वर्ण को uppercase में बदल देता है)
    • s  : String (Capital S पूरे string को uppercase में बदल देता है)
    • h  : Hash code (object के reference value को प्रिंट करने के लिए उपयोगी)
    • n  : Newline (platform-specific newline character; portability के लिए हमेशा %n का उपयोग करें बजाय \n के)

उदाहरण के लिए, इन दो print statements पर विचार करें जो dblTotal में stored एक floating-point value के साथ काम करते हैं:

String.format( ) का उपयोग

System.out.printf( ) के समान, String.format( ) method आपको एक ऐसा फ़ॉर्मेटेड string बनाने की अनुमति देता है जिसे आप variable में assign कर सकते हैं। इसका उपयोग printf( ) के समान ही होता है। उदाहरण के तौर पर:

यह सुविधा विशेष रूप से तब उपयोगी होती है जब आपको तुरंत print करने के बजाय फ़ॉर्मेटेड strings को store या आगे manipulate करना हो।

Dates & Times के लिए अतिरिक्त Format Specifiers

Java का फ़ॉर्मेटिंग mechanism date और time conversion specifiers का भी समर्थन करता है। यहाँ कुछ उदाहरण दिए गए हैं:

  • tB – महीने का locale-specific पूरा नाम।
  • td या te – महीने का दिन (जहाँ td आवश्यक होने पर leading zero शामिल करता है, जबकि te नहीं करता)।
  • ty या tY – वर्ष (ty दो-अंकीय वर्ष प्रदान करता है और tY चार-अंकीय वर्ष)।
  • tl – 12-hour clock format में घंटा।
  • tM – दो अंकों में मिनट (आवश्यकतानुसार leading zero के साथ)।
  • tp – locale-specific am/pm marker (lowercase में)।
  • tm – दो-अंकीय मान के रूप में महीना।
  • tD – %tm%td%ty के रूप में फ़ॉर्मेटेड Date (जैसे, “05/29/06”)।

अन्य महत्वपूर्ण format constructs में शामिल हैं:
• +  : हमेशा sign शामिल करें (positive या negative)।
• ,  : locale-specific group separators डालें।
• -  : फ़ॉर्मेटेड आउटपुट को Left justify करें।
• .3  : decimal point के बाद तीन अंक दिखाएँ।
• 10.3 : डिफ़ॉल्ट रूप से right justification के साथ दशाक्षरों के बाद तीन अंकों वाले कुल दस अक्षरों का field width आवंटित करता है।

एक Sample Program

इन सभी अवधारणाओं को एक साथ लाने के लिए, निम्नलिखित sample program को देखें:

नोट: Program code में, “<” और “>” के किसी भी occurrences को क्रमशः “<" और ">” से प्रतिस्थापित किया गया है।

Program Highlights

  • Numeric formatting में zeroes द्वारा padding और comma grouping दोनों को दर्शाया गया है।
  • Floating-point formatting precision control और field width का उपयोग करके alignment दिखाता है।
  • Date और time formatting conversion characters का उपयोग करके locale-specific outputs उत्पन्न करता है।
  • Locale को बदलकर (जैसे, Locale.FRANCE का उपयोग करके) आप decimal separator जैसे विवरणों को नियंत्रित कर सकते हैं।

निष्कर्ष

Java के printf( ) और String.format( ) methods डेवलपर्स को data प्रस्तुत करने के तरीके पर व्यापक नियंत्रण प्रदान करते हैं। सरल संख्या फ़ॉर्मेटिंग से लेकर अधिक जटिल date और time conversions तक, ये फ़ॉर्मेटिंग उपकरण एक सुचारु, पठनीय कंसोल आउटपुट तैयार करने के लिए आवश्यक हैं। Flags, चौड़ाई, सटीकता, और conversion characters में महारत हासिल करके, आप अपने आउटपुट को कार्यात्मक और सौंदर्यात्मक आवश्यकताओं के अनुरूप अनुकूलित कर सकते हैं। अनेक built-in specifiers और विकल्पों के साथ, Java की फ़ॉर्मेटिंग क्षमताएँ स्पष्ट और प्रभावी user interfaces या logs उत्पन्न करने की प्रक्रिया को सरल बनाती हैं।

Happy coding with Java’s robust formatting features!

Note: This article is AI generated.







Share your love