জাভাতে কমা-সীমানা ছাড়ানোর সুস্পষ্ট উপায় কী?
আমি এটি করার বিভিন্ন উপায় জানি, তবে আমি ভাবছি যে সর্বোত্তম উপায়টি কী (যেখানে "সেরা" মানে সবচেয়ে স্পষ্ট এবং / বা সবচেয়ে সংক্ষিপ্ততম, সবচেয়ে দক্ষ নয়।
আমার একটি তালিকা রয়েছে এবং আমি প্রতিটি মান মুদ্রণ করে এটি লুপ করতে চাই। আমি প্রতিটি আইটেমের মধ্যে কমা মুদ্রণ করতে চাই, তবে শেষের পরে নয় (প্রথমটির আগে নয়)।
List --> Item ( , Item ) *
List --> ( Item , ) * Item
নমুনা সমাধান 1:
boolean isFirst = true;
for (Item i : list) {
if (isFirst) {
System.out.print(i); // no comma
isFirst = false;
} else {
System.out.print(", "+i); // comma
}
}
নমুনা সমাধান 2 - একটি সাবলিস্ট তৈরি করুন:
if (list.size()>0) {
System.out.print(list.get(0)); // no comma
List theRest = list.subList(1, list.size());
for (Item i : theRest) {
System.out.print(", "+i); // comma
}
}
নমুনা সমাধান 3:
Iterator<Item> i = list.iterator();
if (i.hasNext()) {
System.out.print(i.next());
while (i.hasNext())
System.out.print(", "+i.next());
}
এগুলি প্রথম আইটেমটি বিশেষভাবে আচরণ করে; এর পরিবর্তে একজন শেষেরটিকে বিশেষভাবে চিকিত্সা করতে পারে।
ঘটনাচক্রে, জাভা 1.6 এ এখানে কীভাবে প্রয়োগ করা List
toString
হয় (এটি উত্তরাধিকার সূত্রে প্রাপ্ত AbstractCollection
):
public String toString() {
Iterator<E> i = iterator();
if (! i.hasNext())
return "[]";
StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = i.next();
sb.append(e == this ? "(this Collection)" : e);
if (! i.hasNext())
return sb.append(']').toString();
sb.append(", ");
}
}
শেষ আইটেমের পরে কমা এড়ানোর জন্য এটি প্রথম দিকে লুপটি থেকে বেরিয়ে যায়। বিটিডাব্লু: এই প্রথম "(এই সংগ্রহ)" দেখে মনে পড়ছে; এটি উস্কে দেওয়ার কোড এখানে:
List l = new LinkedList();
l.add(l);
System.out.println(l);
আমি যে কোনও সমাধানকে স্বাগত জানাই, এমনকি তারা অপ্রত্যাশিত গ্রন্থাগারগুলি ব্যবহার করলেও (রিজেক্সপ?); এবং জাভা ব্যতীত অন্য ভাষায় সমাধান (যেমন আমি মনে করি পাইথন / রুবি একটি আছে ছড়ান ফাংশন - কিভাবে করা হয় যে ? বাস্তবায়িত)।
স্পষ্টকরণ : লাইব্রেরি দ্বারা, আমি মানক জাভা গ্রন্থাগারগুলি বোঝাতে চাইছি। অন্যান্য গ্রন্থাগারের জন্য, আমি তাদের অন্যান্য ভাষার সাথে বিবেচনা করি এবং সেগুলি কীভাবে প্রয়োগ করা হয় তা জানতে আগ্রহী।
এডিআইটি টুলকিট একটি অনুরূপ প্রশ্নের উল্লেখ করেছে: জাবাতে লুপের জন্য বর্ধিত শেষের পুনরাবৃত্তি
এবং আরেকটি: লুপের শেষ উপাদানটি কী আলাদা চিকিত্সার দাবি করে?