Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

रूबी स्ट्रिंग फॉर्मेटिंग आसान: लीडिंग जीरोज, कॉलम और printf स्टाइल

आइए बात करते हैं कि आप रूबी में स्ट्रिंग्स को कैसे फॉर्मेट कर सकते हैं।

आप स्ट्रिंग को फॉर्मेट क्यों करना चाहेंगे? खैर, आप ऐसी चीजें करना चाह सकते हैं जैसे नंबर 10 से कम होने पर भी लीडिंग ज़ीरो हो (उदाहरण: 01, 02, 03...), या कुछ कंसोल आउटपुट को कॉलम में अच्छी तरह से फॉर्मेट किया गया हो।

अन्य भाषाओं में आप स्ट्रिंग्स को फॉर्मेट करने के लिए printf फ़ंक्शन का उपयोग कर सकते हैं, और यदि आपने कभी C का उपयोग किया है तो आप शायद इससे परिचित हैं। printf का उपयोग करने के लिए आपको फॉर्मेट स्पेसिफायर्स की एक सूची और वेरिएबल्स या मानों की एक सूची परिभाषित करनी होगी।

रूबी स्ट्रिंग फॉर्मेटिंग के साथ शुरुआत

जबकि sprintf रूबी में भी उपलब्ध है, इस पोस्ट में हम एक अधिक इडियोमैटिक तरीके का उपयोग करेंगे (किसी कारण से कम्युनिटी स्टाइल गाइड इस पर सहमत नहीं लगता, लेकिन मुझे लगता है कि यह ठीक है)।

यहां एक उदाहरण है:

 time = 5 message = "Processing of the data has finished in %d seconds" % [time] puts message 

आउटपुट => "Processing of the data has finished in 5 seconds"

इस उदाहरण में, %d फॉर्मेट स्पेसिफायर है (उपलब्ध स्पेसिफायर्स की सूची यहां है) और time वह वेरिएबल है जिसे हम फॉर्मेट करना चाहते हैं। एक %d फॉर्मेट हमें केवल पूर्ण संख्याएं देगा।

यदि हम फ्लोटिंग पॉइंट नंबर्स प्रदर्शित करना चाहते हैं तो हमें %f का उपयोग करना होगा। हम दशमलव स्थानों की संख्या को इस तरह निर्दिष्ट कर सकते हैं: %0.2f।

2 यहां इंगित करता है कि हम केवल दो दशमलव स्थान रखना चाहते हैं।

यहां एक उदाहरण है:

 score = 78.5431 puts "The average is %0.2f" % [score]

आउटपुट => The average is 78.54

याद रखें कि संख्या को राउंड अप किया जाएगा। उदाहरण के लिए, यदि मैंने पिछले उदाहरण में 78.549 का उपयोग किया होता, तो यह 78.55 प्रिंट करता।

परिवर्तित करना और पैडिंग

आप एक दशमलव संख्या को परिवर्तित कर सकते हैं और इसे हेक्साडेसिमल के रूप में प्रिंट कर सकते हैं। %x फॉर्मेट का उपयोग करके:

 puts "122 in HEX is %x" % [122] 

आउटपुट => 122 in HEX is 7a

स्ट्रिंग को पैड करने के लिए:

इस फॉर्मेट का उपयोग करें एक संख्या को उतने 0 से पैड करने के लिए जितने आप चाहते हैं: %0<zeros की संख्या>d

puts "The number is %04d" % [20]

आउटपुट => The number is 0020

आप इस रूबी स्ट्रिंग फॉर्मेट ट्रिक का उपयोग टेक्स्ट के संरेखित कॉलम बनाने के लिए भी कर सकते हैं। 0 को डैश से बदलें यह प्रभाव प्राप्त करने के लिए:

रूबी स्ट्रिंग फॉर्मेटिंग आसान: लीडिंग जीरोज, कॉलम और printf स्टाइल

वैकल्पिक रूप से, आप स्ट्रिंग क्लास से .ljust और .rjust विधियों का उपयोग करके वही काम कर सकते हैं।

उदाहरण:

 names_with_ages = [["john", 20], ["peter", 30], ["david", 40], ["angel", 24]] names_with_ages.each { |name, age| puts name.ljust(10) + age.to_s } # निम्न तालिका प्रिंट करता है john 20 david 30 peter 40 angel 24 

निष्कर्ष

जैसा कि आपने देखा रूबी और रेल्स स्ट्रिंग फॉर्मेटिंग वास्तव में आसान है, यह सब आपके लिए उपलब्ध विभिन्न फॉर्मेट स्पेसिफायर्स को समझने पर निर्भर करता है।

मुझे आशा है कि आपने आउटपुट फॉर्मेटिंग की दुनिया में इस तेज़ यात्रा का आनंद लिया! मेरे न्यूज़लेटर को सब्सक्राइब करना न भूलें ताकि मैं आपको और बढ़िया कंटेंट भेज सकूं 🙂

  1. - C प्रोग्राम संख्या को स्ट्रिंग में बदलने के लिए

    इस सेक्शन में हम देखेंगे कि किसी संख्या (इंटीजर या फ्लोट या किसी अन्य न्यूमेरिक टाइप डेटा) को स्ट्रिंग में कैसे बदला जाए। लॉजिक बहुत सरल है। यहां हम sprintf() फंक्शन का उपयोग करेंगे। यह फंक्शन किसी मान या लाइन को कंसोल में नहीं बल्कि एक स्ट्रिंग में प्रिंट करने के लिए उपयोग किया जाता है। यह printf

  1. - जावा में % का उपयोग करके स्ट्रिंग फॉर्मेटिंग

    जावा में % का उपयोग करके स्ट्रिंग फॉर्मेटिंग लागू करने का कोड निम्नलिखित है: उदाहरण public class Demo { public static void main(String args[]){ String my_str = sample.; String concat_Str = String.format(This is a + %s, my_str); String format_str_1 = String.format(Th

  1. - पायथन स्ट्रिंग फॉर्मेटिंग की तुलना: % बनाम .format

    % या तो एक वेरिएबल या एक टपल ले सकता है। इसलिए आपको बहुत स्पष्ट होना होगा कि आप इससे क्या करवाना चाहते हैं। उदाहरण के लिए, यदि आप इस तरह फॉर्मेट करने का प्रयास करते हैं - उदाहरण my_tuple = (1, 2, 3) My tuple: %s % my_tuple # आप उम्मीद करेंगे कि आउटपुट होगा: My tuple: (1, 2, 3) आउटपुट लेकिन यह एक