2017-11-27 9 views
5

मैं यहां तक ​​कि अगर मैं सभी तीन तर्कों अभी भी काम नहींजावा संदेश फ़ॉर्मेटर काम नहीं कर रहा

public static void main(String[] args) { 
    String s = "xxxxxxxx xxxxx-xx: [{0}] xxxxxxx xxxxx xxxxxx xxxxxx [{1}] xxxxxx xxxx xxxxx'x xxxxx xxxxxx xxxx [{2}]"; 

    System.out.println(MessageFormat.format(s,"1","2","3")); 
} 

उत्पादन होता है प्रदान स्ट्रिंग टेम्पलेट

xxxxxxxx xxxxx-xx: [{0}] xxxxxxx xxxxx xxxxxx xxxxxx [{1}] xxxxxx xxxx xxxxx'x xxxxx xxxxxx xxxx [{2}] 

है आउटपुट, के बजाय {2} का उत्पादन, मुझे नहीं पता कि यह क्यों काम नहीं कर रहा है। क्या यह एक बग है या मुझे कुछ याद आ रहा है?

+3

आउटपुट देखें। इसका उत्पादन 3 – Makky

+0

के बजाय {2} को आउटपुट करना क्या एक टाइपो या वास्तविक आउटपुट आउटपुट में अनुपलब्ध है? – hnefatl

+0

इसका आउटपुट, आप – Makky

उत्तर

9

आपकी समस्या एकल उद्धरण में है ' आप डबल '' बजाय एक के उपयोग करने के लिए: एक स्ट्रिंग के भीतर

xxxxx''x 

एकल उद्धरण (MessageFormat)

के बारे में दस्तावेज़ पढ़ें , एकल उद्धरणों को छोड़कर किसी भी मनमाना वर्णों को उद्धृत करने के लिए सिंगल कोट्स की एक जोड़ी का उपयोग किया जा सकता है। उदाहरण के लिए, पैटर्न स्ट्रिंग "'{0}'" स्ट्रिंग का प्रतिनिधित्व करता है "{0}", प्रारूप स्वरूप नहीं। एक एकल उद्धरण स्वयं को स्ट्रिंग में दोगुना सिंगल कोट्स द्वारा दर्शाया जाना चाहिए। उदाहरण के लिए, पैटर्न स्ट्रिंग "'{' '}' 'को अनुक्रमित किया गया है' {(उद्धरण और बाएं घुंघराले ब्रेस की शुरुआत), '' (एक एकल उद्धरण), और} '(एक दायां घुंघराले ब्रेस और उद्धरण के अंत), '{' और '}' (बाएं और दाएं घुंघराले ब्रेसिज़ उद्धृत) नहीं: स्ट्रिंग "{'}", "{}" का प्रतिनिधित्व नहीं करते हैं।

+0

कोशिश कर सकते हैं क्या यह एपीआई दस्तावेज़ में कुछ प्रदान किया गया है? – Makky

2

ऐसा इसलिए है क्योंकि आपके स्ट्रिंग में ' है। आपको इसे बचाना होगा या आप एक गायब हैं।

3

यह वास्तव में एस्ट्रोफ़े है, आपको इसे अन्य एस्ट्रोफ़े से बचाना होगा, जैसे: ''xxx। यह डॉक्टर बीटीडब्ल्यू में:

एक स्ट्रिंग के भीतर, '' (दो सिंगल कोट्स) एक एकल उद्धरण का प्रतिनिधित्व करता है।

+0

धन्यवाद। मैं समझ गया ! मूर्ख मुझे – Makky

+0

@Makky मुझे भी मूर्खतापूर्ण;) मैं पूरी तरह से इस बारे में भूल गया – Eugene

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