एक सूचीअल्पविरामों से जावा में एक सूची <String> में शामिल होने और "और"
List<String> l = new ArrayList<String>();
l.add("one");
l.add("two");
l.add("three");
मैं एक विधि है यह देखते हुए
String join(List<String> messages) {
if (messages.isEmpty()) return "";
if (messages.size() == 1) return messages.get(0);
String message = "";
message = StringUtils.join(messages.subList(0, messages.size() -2), ", ");
message = message + (messages.size() > 2 ? ", " : "") + StringUtils.join(messages.subList(messages.size() -2, messages.size()), ", and ");
return message;
}
जो, एल के लिए, पैदा करता है "एक, दो, और तीन" । मेरा प्रश्न है, वहाँ एक विधि मानक (अपाचे-कॉमन्स) है कि एक ही ?, जैसे
WhatEverUtils.join(l, ", ", ", and ");
स्पष्ट करने के लिए करता है। मेरी समस्या इस विधि को काम करने के लिए नहीं मिल रही है। यह वैसे ही काम करता है जैसा मैं चाहता हूं, यह परीक्षण किया गया है और सब ठीक है। मेरी समस्या यह है कि मुझे कुछ अपाचे-कॉमन्स-जैसे मॉड्यूल नहीं मिल सका जो ऐसी कार्यक्षमता लागू करता है। जो मुझे आश्चर्यचकित करता है, क्योंकि मैं इसकी आवश्यकता के लिए पहली नहीं हो सकता।
लेकिन तब शायद हर किसी बस
StringUtils.join(l, ", ").replaceAll(lastCommaRegex, ", and");
मुझे नहीं लगता कि ऐसी ओपन सोर्स लाइब्रेरी है, लेकिन मैं संसाधन बंडलों का उपयोग करने की सलाह देता हूं क्योंकि सभी भाषाएं अंग्रेजी शब्द "और" का उपयोग नहीं करती हैं। –
@ स्लीपसेट, आप ज्ञात पुस्तकालय से कुछ शामिल क्यों नहीं करते हैं और इसे थोड़ा सा संशोधित करते हैं? ध्यान दें कि "और" अंग्रेजी शब्द है, इसलिए यदि ऐसी लाइब्रेरी मौजूद होगी, तो इसमें बहु भाषाएं – smas
का समर्थन करना पड़ सकता था, शायद मैं अस्पष्ट हो सकता था, लेकिन मैंने अपने प्रश्न में जो तरीका दिखाया है, मैंने लिखा है, और यह वैसे ही काम करता है जैसा मैं चाहता हूं। – slipset