الصنف الهائل StringJoiner والتعامل الراقي مع النصوص

اربط العديد من النصوص بطريقة سهلة

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 قد يدخل في العديد من التصبيقات في عملك البرمجي، وهو أحد الأدوات المساعدة على التعامل مع النصوص ويحتاج اختيار الأداة المناسبة في الوقت المناسب إلى معرفة بالأداة وحكمة.

إذا وجدت أن التدوينة مفيدة وعملية سيسعدني أن تشاركها مع أصدقائك.

مصطفى الطيب

صديقٌ لنُظمِ المعلُومات و عُلومِ الحَاسِب و مُختصٌ بهما، مُحبٌ للعِلمِ و نَشرِه. أُشاركُ معارفي و تَجاربي و خِبراتي في تَدويناتٍ و دوراتٍ من خلال مُدونةِ عُلوم.

‫3 تعليقات

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى