2 अंकों के साथ प्रदर्शित करने के लिए नंबर 0..9 को कैसे प्रारूपित करें (यह तारीख नहीं है)


215

मैं हमेशा 2 अंकों के साथ 100 के नीचे एक संख्या दिखाना चाहता हूं (उदाहरण: 03, 05, 15 ...)

अगर यह 10 से कम है तो मैं सशर्त का उपयोग किए बिना 0 को कैसे जोड़ सकता हूं?

मुझे परिणाम को दूसरे स्ट्रिंग में जोड़ने की आवश्यकता है, इसलिए मैं प्रिंटफ का उपयोग नहीं कर सकता।

जवाबों:


528

आप उपयोग कर सकते हैं:

String.format("%02d", myNumber)

Javadocs भी देखें


1
क्या होगा अगर myNumber एक डबल है?
फ्रा

3
@ String.format("%02.0f", myNumber)यदि आप दशमलव बिंदु के बाद नंबर नहीं चाहते हैं तो आप उपयोग करेंगे
beny23

उन लोगों के लिए जो विशेष रूप से स्ट्रिंग प्रारूप वाक्यविन्यास के बारे में पढ़ना चाहते हैं: प्रारूप स्ट्रिंग सिंटैक्स
Pony

यह एक एंड्रॉइड लिंटर चेतावनी उत्पन्न करेगा "डिफ़ॉल्ट रूप से डिफ़ॉल्ट लोकेल का उपयोग करना बग्स का एक सामान्य स्रोत है: इसके बजाय String.format (लोकेल, ...) का उपयोग करें"
क्रिस्टोफर स्टॉक

1
@ChristopherStock एक पूरी तरह से अलग मुद्दा है, जिस डिवाइस पर ऐप चल रहा है, उसके सही डिफ़ॉल्ट लोकेल का उपयोग करने के लिए - आप इसे अनदेखा या ठीक कर सकते हैं, लेकिन यह केवल Android और स्थानों से संबंधित है। वास्तविक स्ट्रिंग प्रारूपण के साथ कुछ नहीं करना है
रादु

55

यदि आपको नंबर प्रिंट करने की आवश्यकता है तो आप प्रिंटफ का उपयोग कर सकते हैं

System.out.printf("%02d", num);

आप उपयोग कर सकते हैं

String.format("%02d", num);

या

(num < 10 ? "0" : "") + num;

या

(""+(100+num)).substring(1);

2
एक प्रारूप का उपयोग करना अब तक सबसे धीमा है, लेकिन यह स्पष्ट और कम है जो बुरी तरह से गलत नहीं है। जैसे अगर अंक -1 हो। ;)
पीटर लॉरी

42

आप इसका उपयोग कर सकते हैं:

NumberFormat formatter = new DecimalFormat("00");  
String s = formatter.format(1); // ----> 01

यह स्वीकृत उत्तर होना चाहिए! स्थानीय सेटिंग्स के कारण String.format के माध्यम से समाधान का परिणाम भिन्न हो सकता है। (s। एंड्रॉइड लिंटर वार्निंग "डिफ़ॉल्ट रूप से डिफ़ॉल्ट लोकेल का उपयोग करना बग का एक सामान्य स्रोत है: String.format (लोकेल, ...) का उपयोग करें
क्रिस्टोफर स्टॉक


2

Android संसाधनों में यह सरल नहीं है

<string name="smth">%1$02d</string>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.