StringJoiner هو صنف وجد من أجل تبسيط حياتك البرمجية!
عندما يتعلق الأمر بعمليات ربط عدد من النصوص (السلاسل الحرفية) المكررة تجد أن استخدام StringJoiner سلاحك الأساسي.
حالة شائعة
التعامل مع قواعد البيانات أمرٌ شائع. أحياناً تحتاج إلى اعداد نص String يحتوي على عبارة الاستعلام Query لتكون بالشكل التالي
Insert into users values ( "ahmed", "ali", "omeri");
ولنفترض أن الاسم الأول والاسم الثاني واسم العائلة يوجدون في متغيرات
String firstName = "ahmed"; String secondName = "ali"; String familyName = "omari";
في هذه الحالة سيكون اعداد نص عبارة الاستعلام بالطريقة التقليدية كما يلي
String query = "Insert into users values ( \"" + firstName + "\", \"" + secondName + "\", \"" + familyName + "\");";
هل أعجبك شكل الشفرة المصدرية أعلاه؟!
هل شعرت بشيء من التعقيد؟!
أعلم أنه من السهل عليك أن تُخطئ في جزء من هذه الشفرة المصدرية لأنك تقضي وقتاً في التركيز المتكرر في محاولة صنع النصوص الفاصلة بين المتغيرات بصورة صحيحة.
كيف يعمل صنف StringJoiner
توجد طريقتين لإنشاء كائن من الصنف StringJoiner
(1) تحديد الفاصل بين النصوص
يستقبل المهيئ Constructor معاملاً واحداً فقط وهو كما يلي
StringJoiner example = new StringJoiner("الفاصل بين النصوص");
لكتابة عبارة Ahmed, Omer, Ali ستكون الشفرة المصدرية
StringJoiner names = new StringJoiner(","); names.add("Ahmed"); names.add("Omer"); names.add("Ali"); System.out.println(names.toString());
لتكون نتيجة التنفيذ:

(2) تحديد نص البداية ونص النهاية والفاصل بين الصفوف
يستقبل المهيئ Constructor ثلاثة معاملات وهي كما يلي
StringJoiner secondExample = new StringJoiner("الفاصل بين النصوص","نص البداية","نص النهاية");
إذا أردنا أن نضع النص السابق Ahmed, Omer, Ali بين قوسين معقوفين لتصبح {Ahmed, Omer, Ali}
تصبح الشفرة المصدرية
StringJoiner names = new StringJoiner(",","{","}"); names.add("Ahmed"); names.add("Omer"); names.add("Ali"); System.out.println(names.toString());
لتكون نتجية التنفيذ:

والآن لنحل مشكلة نص الاستعلام عبر StringJoiner
هل أستطيع أن أطلق على الشفرة المصدرية أدناه شفرة قبيحة؟
String query = "Insert into users values ( \"" + firstName + "\", \"" + secondName + "\", \"" + familyName + "\");";
دعنا نضع عليها مسحوق تجميل StringJoiner لتبدو كما ترى أدناه
StringJoiner joinerQuery = new StringJoiner( "\", \"", "Insert into users values ( \"", "\");" ); joinerQuery.add(firstName); joinerQuery.add(secondName); joinerQuery.add(familyName); System.out.println(joinerQuery.toString());
لتكون نتيجة التنفيذ في كلا الحالتين:

الصنف StringJoiner قد يدخل في العديد من التصبيقات في عملك البرمجي، وهو أحد الأدوات المساعدة على التعامل مع النصوص ويحتاج اختيار الأداة المناسبة في الوقت المناسب إلى معرفة بالأداة وحكمة.
إذا وجدت أن التدوينة مفيدة وعملية سيسعدني أن تشاركها مع أصدقائك.
السلام عليكم عندي استفسار حول محاكاة نظام موزع اذا تقدر تساعدني
ربي يوفقك لكل خير
🌺🍀🌺
السلام عليكم الاخ مصطفى عندي بعض الاسئله احتاج الي التحدث معك
مرحباً بك أيها الخبير، صفحة التواصل وجدت من أجل ذلك ويسعدني التواصل معك.