2009-12-21 15 views
88

सरल सवाल है, लेकिन मुझे यकीन है होगा कि यहाँ पर पूछ शायद MessageFormat के लिए प्रलेखन समझने की कोशिश कर की तुलना में सीधे आगे और अधिक हो जाएगा:मैं जावा में विभाजक के बिना एक स्ट्रिंग के रूप में एक लंबा पूर्णांक कैसे प्रारूपित करूं?

long foo = 12345; 
String s = MessageFormat.format("{0}", foo); 

पाये गये मूल्य "12,345" है।

वांछित मूल्य "12345" है।

उत्तर

42
+9

या 'String.valueOf (लंबा)' – rsp

+4

String.valueOf() कॉल Long.toString() –

+5

शायद यह छोटा हो रहा है लेकिन इस मामले में आप Long.toString (foo) के अनियंत्रित व्यवहार पर भरोसा कर रहे हैं। इसी कारण से, मैं डैनियल फोर्टुनोव के उत्तर को पसंद करता हूं। –

238
MessageFormat.format("{0,number,#}", foo); 
+1

धन्यवाद, मैं इसे संदेशफॉर्मेट गुण इंजेक्शन के साथ करने की कोशिश कर रहा था। अच्छी बात यह है कि इसे करने के एक से अधिक तरीके हैं! –

+3

मैं इस तरह से पसंद करता हूं। क्योंकि यह मुझे मेरी भाषा गुण फ़ाइल में प्रारूप बदलने की अनुमति देता है। –

+18

यह स्वीकार्य उत्तर होना चाहिए। –

-1

का उपयोग के रूप में एक विकल्प के String.format और java.util.Formatter रूप में अच्छी तरह से आप के लिए काम कर सकते हैं ...

-5

आप की कोशिश कर सकते:

String s = new Long(foo).toString(); 
+6

अनावश्यक ऑब्जेक्ट सृजन। कभी भी रैपर वर्गों के साथ नया उपयोग न करें। – keiki

-1

सबसे छोटा रास्ता

है
long foo = 12345; 
String s = ""+foo; 
+3

और, हमेशा के रूप में, यह 'नई स्ट्रिंगबिल्डर ("") तक फैलता है। संलग्न करें (foo) .toString()' तो यह वास्तव में इष्टतम नहीं है। – RAnders00

+1

@ RAnders00 एक संख्या को परिवर्तित करना एक स्ट्रिंग में सबसे इष्टतम विकल्प होने की संभावना नहीं है, संदर्भ के आधार पर आप आमतौर पर इसे पूरी तरह से टाल सकते हैं, लेकिन सबसे सरल पैटर्न के लिए आप '" "+' –

+1

का उपयोग कर सकते हैं आप सही हैं, लेकिन मैं बस इसे इंगित करना चाहता था चूंकि लोग हमेशा इसे इंगित करते हैं। – RAnders00

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

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