2009-05-12 13 views
9

मैं सोच रहा था कि स्ट्रिंग को प्रारूपित करने का सबसे अच्छा तरीका स्कैला में होगा। मैं कक्षा के लिए toString विधि को फिर से कार्यान्वित कर रहा हूं, और यह एक लंबी और जटिल स्ट्रिंग है। मैंने String.format का उपयोग करने के बारे में सोचा लेकिन ऐसा लगता है कि स्कैला के साथ समस्याएं हैं। क्या ऐसा करने के लिए कोई देशी स्कैला फ़ंक्शन है?स्कैला में एक स्ट्रिंग को प्रारूपित करने का सबसे अच्छा तरीका क्या है?

उत्तर

16

मैं बस इसे गलत इस्तेमाल कर रहा था। सही उपयोग है .format (parem1, parem2)।

+5

'रिचस्टिंग' में एक चीज है जो आपको यहां कुछ अच्छी चीजें करने देती है, हालांकि; जबकि सिर्फ जावा एपीआई का उपयोग कर आप करते हैं: "% s% d खरगोशों है" .format (नाम: String.Format आप निम्न कर सकते हैं (, नाम, bunnyCount "% s% d खरगोशों है") , bunnyCount) या इसे ऑपरेटर के रूप में भी उपयोग करें: "% s में% d bunnies" प्रारूप (नाम, bunnyCount) – Calum

+1

इस प्रकार मैं इसका उपयोग कर रहा हूं। – Rayne

2

String#format के साथ देखने की बात यह तथ्य है कि इसे वास्तव में प्रतिबिंब (v2.7.4 के रूप में) का उपयोग करके लागू किया जाता है। यह जावा एपीआई को प्रतिनिधि करता है, लेकिन प्रतिबिंब तुलनात्मक रूप से मामूली विधि कॉल के लिए एक महत्वपूर्ण महत्वपूर्ण ओवरहेड जोड़ता है। आप प्रदर्शन कारणों से जावा-स्टाइल स्ट्रिंग कॉन्सटेनेशन पर विचार करना चाह सकते हैं। जैसा कि मैं इसे समझता हूं, स्कैला संस्करण 2.8.0 को इस समस्या को हल करना चाहिए।

+5

एक बार हास्यपूर्ण रूप से जटिल प्रारूप अब केवल है: डीफ़ प्रारूप (तर्क: कोई * *): स्ट्रिंग = java.lang.String.format (स्वयं, args.toArray [कोई भी] .asInstanceOf [ऐरे [AnyRef]]: _ *) – extempore

+0

2.9.1 के स्रोत को देखते हुए यह तय किया गया है। 'StringLike.format (तर्क: * कोई भी) 'अब बस' java.lang.String.format 'लपेटता है। – mtsz

3

अच्छे पुराने java.text.MessageFormat के बारे में कैसे?

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

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