জাভা অ্যাপ্লিকেশনটিতে কাজ করার সময়, আমার কাছে কয়টি উপাদান আগে থেকে থাকবে তা না জেনে অন্য ওয়েব পরিষেবাদিতে পাস করার জন্য কমা-সীমাবদ্ধ মানগুলির তালিকা সংগ্রহ করতে হয়েছিল। আমার মাথার উপরের অংশটি দিয়ে আমি যে সেরাটি আসতে পারলাম তা হ'ল:
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(",");
তবে যেহেতু জাভাতে একটি জয়েন কমান্ডের অভাব রয়েছে, তাই আমি এর সমতুল্য কিছু বের করতে পারি না।
তো, জাভাতে এটি করার সর্বোত্তম উপায় কী?