إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    Java الدالة appendReplacement() و الدالة appendTail() في جافا

    تعريفهم

    appendReplacement(): هذه الدالة تبدأ عملية تبديل محتوى محدد في النص كلما وجدته بمحتوى جديد.
    فهي تبدل المحتوى الذي تم إيجاده في النص بمحتوى جديد و ترجع النص كله مع التبديل ككائن نوعه StringBuffer.
    كما أنها تعتمد على الدوال find() و start() و end() عندما تبحث عن المحتوى الذي سيتم تبديله.
    و هي تستفيد من الدوال start() و end() لمعرفة أين يبدأ و أين ينتهي المحتوى الذي سيتم تبديله في النص.
    الدالة find() نستخدمها للبحث عن كل تطابق موجود النص.
    ملاحظة: الدالة appendReplacement() لا تضيف بقية النص الموجودة بعد آخر مرة تم فيها إيجاد تطابق.

    appendTail(): هذه الدالة تكمل عملية تبديل محتوى النص بمحتوى جديد.
    هي تقوم فقط بإضافة النص العادي الموجود بعد آخر مرة تم فيها تبديل القيمة.
    هذه الدالة تُستدعى بعد إستدعاء الدالة appendReplacement() بالترتيب حتى تضيف باقي المحتوى على الـ StringBuffer.



    بناؤهم

    public Matcher appendReplacement(StringBuffer sb, String replacement)
    
    public StringBuffer appendTail(StringBuffer sb)
    	


    أخطاء محتملة

    • IllegalStateException: في حال لم تجد الدالة appendReplacement() أي تطابق في النص, أو في حال حدث خطأ في التطابق السابق.
    • IllegalArgumentException: في حال لم تجد الدالة appendReplacement() الـ Pattern التي تشير لمجموعة.
    • IndexOutOfBoundsException: في حال لم تجد الدالة appendReplacement() الـ Pattern التي تشير لمجموعة.


    مثال

    Main.java
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
    public class Main {
     
        public static void main(String[] args) {
     
            String REGEX = "dog";                                                     // REGEX: هو النص الذي سنبحث عنه
            String INPUT = "I have one dog, my friend have two dogs and one bird.";   // INPUT: هو النص الذي سنبحث فيه
     
            Pattern p = Pattern.compile(REGEX);     // Pattern ثم قمنا بتخزينه في كائن نوعه compile() باستخدام الدالة Pattern إلى REGEX قمنا بتحويل الـ
     
            Matcher m = p.matcher(INPUT);           // Matcher ثم قمنا بتخزينه في كائن نوعه INPUT على النص matcher() قمنا باستدعاء الدالة
     
            StringBuffer sb = new StringBuffer();   // لتخزين النص الذي سيحتوي على النسخة التي تم تبديلها StringBuffer قمنا بإنشاء كائن نوعه
     
            while ( m.find() )                      // سيبحث عن التطابق التالي INPUT موجود في الـ Pattern هنا طالما أن الـ
            {
                m.appendReplacement(sb, "cat");     // هنا بدأنا عملية التبديل
            }
     
            m.appendTail(sb);                       // هنا قمنا بإتمام عملية التبديل
     
            System.out.println( sb.toString() );    // sb هنا قمنا بعرض قيمة النص التي تم تبديلها و تخزينها في الكائن
     
        }
     
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    I have one cat, my friend have two cats and one bird.
    		

    شرح الكود

    هنا كان الهدف تبديل الكلمة dog بالكلمة cat.


    لو لم تستدعي الدالة appendTail() على الكائن m لكان ظهر محتوى النص الجديد ناقصاً.

    أي لو قمت بمسح الكود m.appendTail(sb); الموجود في السطر 22, ستحصل على النتيجة التالية عند التشغيل.

    I have one cat, my friend have two cat
    		
    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب