मैं MessageFormat
कक्षा का उपयोग कर जावा में स्ट्रिंग को प्रारूपित करने का प्रयास कर रहा हूं। स्ट्रिंग में स्थितित्मक क्षेत्र होता है लेकिन यह केवल तभी काम करता है जब मैं फ़ील्ड नंबर प्रदान करता हूं। के लिए उदाहरण,स्ट्रिंग स्वरूपण में स्वचालित फ़ील्ड नंबरिंग
MessageFormat.format("{0} {1}", "Hi", "Java")
काम करता है लेकिन
MessageFormat.format("{} {}", "Hi", "Java")
Exception in thread "main" java.lang.IllegalArgumentException: can't parse argument number:
at java.text.MessageFormat.makeFormat(MessageFormat.java:1429)
at java.text.MessageFormat.applyPattern(MessageFormat.java:479)
at java.text.MessageFormat.<init>(MessageFormat.java:362)
at java.text.MessageFormat.format(MessageFormat.java:840)
at controller.App.main(App.java:11)
Caused by: java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.parseInt(Integer.java:615)
at java.text.MessageFormat.makeFormat(MessageFormat.java:1427)
वहाँ एक रास्ता (किसी अन्य वर्ग या पुस्तकालय) अजगर की तरह है कि यह दोनों स्वचालित और मैन्युअल क्षेत्र नंबर कुछ संभाल कर सकते हैं है देता है?
In [3]: print "{} {}".format("Hi", "Java")
Hi Java
In [4]: print "{0} {1}".format("Hi", "Java")
Hi Java
आप सूचकांक प्रदान करने के लिए नहीं करना चाहते हैं, तो 'String.format' का उपयोग करने के बजाय। – Tom
हां मैं ऐसा कर सकता था लेकिन एक उपयोग केस है जहां मैं इंडेक्स के साथ या बिना स्ट्रिंग प्राप्त कर सकता हूं – barunsthakur