2012-09-14 17 views
126

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

यह 10 के तहत है या नहीं, यह जांचने के लिए एक सशर्त उपयोग किए बिना 0 को कैसे जोड़ सकता है?

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

उत्तर

335

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

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

भी देखें javadocs

+1

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

+1

@Fra, तो आप 'String.format ("% 02.0f ", myNumber) का उपयोग करेंगे, यदि आप दशमलव बिंदु – beny23

41

आप printf

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

उपयोग कर सकते हैं आप संख्या मुद्रित करने के लिए की जरूरत है आप

String.format("%02d", num); 
उपयोग कर सकते हैं

या

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

या

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

के बाद संख्या नहीं चाहते हैं तो प्रारूप का उपयोग करना सबसे धीमा है, लेकिन यह स्पष्ट और कम है बहुत गलत होने की संभावना नहीं है। जैसे अगर संख्या -1 है। ;) –

29

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

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

निस! .......... – Naitik

3

स्ट्रिंग वर्ग प्रारूप क्षमताओं के साथ आता है: पूर्ण प्रलेखन के लिए

System.out.println(String.format("%02d", 5)); 

, यहाँ है doc

+0

यह कहता है 'java.util.IleglegalFormatConversionException:% d java.lang प्रारूपित नहीं कर सकता। दोहरा तर्क' –

0

एंड्रॉयड संसाधनों में यह नहीं बल्कि आसान है

<string name="smth">%1$02d</string>