एक जावा ऐप में काम करते समय, मुझे हाल ही में मूल्यों के अल्पविराम-सीमांकित सूची को एक अन्य वेब सेवा में पारित करने की आवश्यकता के बिना यह जानने की आवश्यकता थी कि कितने तत्व अग्रिम में होंगे। सबसे अच्छा मैं अपने सिर के ऊपर से उतर सकता था कुछ इस तरह था:
public String appendWithDelimiter( String original, String addition, String delimiter ) {
if ( original.equals( "" ) ) {
return addition;
} else {
return original + delimiter + addition;
}
}
String parameterString = "";
if ( condition ) parameterString = appendWithDelimiter( parameterString, "elementName", "," );
if ( anotherCondition ) parameterString = appendWithDelimiter( parameterString, "anotherElementName", "," );
मुझे लगता है कि यह विशेष रूप से कुशल नहीं है, क्योंकि वहाँ तार सभी जगह बनाए जा रहे हैं, लेकिन मैं अनुकूलन से अधिक स्पष्टता के लिए जा रहा था।
रूबी में, मैं इसके बजाय कुछ ऐसा कर सकता हूं, जो बहुत अधिक सुरुचिपूर्ण लगता है:
parameterArray = [];
parameterArray << "elementName" if condition;
parameterArray << "anotherElementName" if anotherCondition;
parameterString = parameterArray.join(",");
लेकिन चूंकि जावा में एक ज्वाइन कमांड की कमी है, इसलिए मैं इसके समकक्ष कुछ भी नहीं समझ सका।
तो, जावा में ऐसा करने का सबसे अच्छा तरीका क्या है?