معالجة البيانات النصية و التعامل معها في لغة جافا JAVA الدرس |21| - Programmer Tech

Programmer Tech

تعلم البرمجة - علوم الكمبيوتر - أمن المعلومات - القرصنة الأخلاقية

إعلان اعلى المقالة

الأربعاء، 23 ديسمبر 2020

معالجة البيانات النصية و التعامل معها في لغة جافا JAVA الدرس |21|

 

معالجة البيانات النصية

البيانات النصية هي سلسلة من الحروف المدخلة من قبل المستخدم من الكيبورد تسمى سلسلة نصية و تعرف في لغة الجافا على أنها نصوص و الـ String هو كل ما يدخل من الكيبورد يدخل على شكل سلاسل نصية, سنتعلم في هذه الفقرة على دالتين و هما الأولى كيف نقوم بإيحاد طول السلسلة النصية و الثانية هي كيف نقوم بدمج سلسلتين في سلسلة واحدة.

 

مثال 1

اكتب برنامج يحسب طول عدد احرف كلمة "saja " مستخدماً لغة الدالة length.

package str;
public class Str {
    public static void main(String[] args) {
        String s="saja ";
        System.out.println(s.length());
    }

}


شرح البرنامج السابق 1

انشأنا متغير نصي إسمه s و قيمته saja و عند تشغيل هذا البرنامج سوف يطبع لنا الرقم 5 لأننا تركنا فراغ في آخر الكلمة و اعتبر طولها خمسة, عند إزالة الفراغ سيطبع 4 لأن الـ String يعتبر الفراغ حرف من الأحرف.

 

مثال 2

اكتب برنامج يقوم بدمج سلسلتين نصيتين الأولى CS و الثانية DB مع بعضهما مستخدماً في ذلك الدالة concat.

package str;
public class Str {
    public static void main(String[] args) {
        String s="CS";
        String s1="DB";
        s1=s1.concat(s);
        System.out.println(s.length(s1));
    }

}


شرح البرنامج السابق 2

أنشأنا المتغير الأول إسمه s و قيمته CS و أنشانا المتغير الثاني إسمه s1 و قيمته DB ثم قلنا له s1 يساوي s1 و إدمجه لنا مع المتغير s و طبعنا نتيجة s1 و عند التنفيذ سيطبع لنا CSDB دمج لنا النصين مع بعضهما.


إستقطاع جزء من سلسلة نصية

عندما نقول سلسلة نصية يعني أنه مجموعة من الكلمات تُشكل سلسلة نصية أو مجموعة من الحروف تشكل سلسلة نصية او مجموعة من الرموز و الأحرف و الكلمات, جميعها تشكل سلسلة نصية سوف نتعلم كيفية إستقطاع جزء من سلسلة ربما نستقطع حرف أو كلمة أو جملة من سلسلة نصية, نستخدم في هذا الأمر الدالة substring و هي تقوم بإستقطاع جزء من السلاسل النصية.


مثال 3

قم يإنشاء متغيرين نصيين الأول قيمته saja و الثاني قيمته Muhammad ثم قم بإستقطاع أجزاء من السلسلة النصية عبر الدالة substring بمعامل واحد.

package str;
public class Str {
    public static void main(String[] args) {
        String s1="saja";
        String s2="Muhammad";
        String s3=s1.substring(2);
        System.out.println(s.length(s3));
    }

}


شرح البرنامج السابق 3

أنشأنا متغير إسمه s1 و قيمته saja و أنشانا متغير ثاني إسمه s2 و قيمته Muhammad ثم أنشأنا متغير ثالث إسمه s3 و خزننا به المتغير الأول و إستقطعنا منه اول حرفين عبر الدالة substring ثم بعد ذلك طبعنا المتغير s3 و عند التنفيذ سيطبع لنا كلمة ja لأنه إستقطع أو تجاهل اول حرفين بعدما حددناهم له.


مثال 4

قم بإنشاء متغيرين نصيين الأول قيمته saja و الثاني قيمته Muhammad ثم قم بإستقطاع جزء من المتغير الثاني من 1 حتى 4 من السلسلة النصية عبر الدالة substring بمعاملين .

package str;
public class Str {
    public static void main(String[] args) {
        String s1="saja";
        String s2="Muhammad";
        String s3=s2.substring(1,4);
        System.out.println(s.length(s3));
    }

}


شرح البرنامج السابق 4

أنشأنا ثلاث متغيرات الأول تم تخزين به القيمة saja و المتغير الثاني تم تخزين به القيمة Muhammad ثم أنشانا متغير ثالث s3 و قلنا له إستقطع من المتغير s2 من 1 حتى 4 أي يبدأ من الأندكس الأول و يتوقف عند الأندكس الرابع و عند التنفيذ سيطبع لنا uha و تجاهل باقي الكلام.


دالة charAt

هي دالة من الدوال النصية التي تُستخدم لمعالجة السلاسل النصية و هي تقوم بإستقطاع حرف حسب الموقع أي تُعيد لنا قيمة من نوع char.

مثال 5

نفترض أن لدينا سلسلة نصية و هي kaissar إستقطع حرف من هذه السلسلة عبر الدالة charAt.

package str;
public class Str {
    public static void main(String[] args) {
        String s="kaisar";
        char c;
        c=s.charAt(4);
        System.out.println(c);
    }

}


شرح المثال السابق 5

أنشأن متغير نصي و هو s و قيمته kaisar ثم عرّفنا متغير من نوع char و هو c ثم خزننا الناتج في c و قلنا له إطبع لنا الأندكس أو الحرف رقم 4 عبر دالة charAt و عند التنفيذ ستكون النتيجة هي حرف a لأن موقعه رقم 4 من هذه السلسلة.

 

مثال 6

اوجد عدد الفراغات في سلسلة نصية مخزنة في متغير نصي s و قيمته "Muhammad Alush" أوجد عدد الفراغات في هذه السلسلة و إطبع عددها.

package str;
public class Str {
    public static void main(String[] args) {
        String s="Muhammad Alush";
        char c;
        int count=0;
        for(int i=0;i<s.length();i++)
        {
            c=s.charAt(i);
            if(c==' ')
                count++;
        }
        System.out.println(count);
    }

}


شرح المثال السابق 6

في بداية البرنامج قمنا بتعريف متغير نصي s و كانت قيمته هي "Muhammad Alush" و عرّفنا متغير نوعه char و إسمه c ثم أنشأنا متغير عددي int إسمه count و القيمة 0 ثم دخلنا في حلقة تكرارية for و وضعنا شروط في حال وجود فراغ يزودنا بعدد الفراغات الذي وجدها و يقوم بالزيادة على count بمقدار 1, و عند تشغيل البرنامج سوف يطبع لنا رقم 1 و هذا يعني أن في هذه السلسلة فراغ واحد فقط وهو فاصل بين الأسم و الكنية.


النص الديناميكي المرن StringBuffer

المقصود به النص المرن أو المتغير أو النص المتقلب يعني أن السلسلة التي تكون من نوع StringBuffer تسمح لنا بتغييرها و تعديلها و التعامل معها بكل سهولة و مرونة و أي سلسلة نصية تعرف على أنها StringBuffer تمنحنا الكلاس و هي في الأساس كلاس يمنحنا الكثير من الدوال للتعامل مع السلاسل النصية.

 

مثال 7 عن الدالة append

package str;

public class Str {
    public static void main(String[] args) {
        StringBuffer s=new StringBuffer("saja");
        s.append("veil");
        System.out.println(s);
    }

}


شرح المثال السابق 7

في هذا المثال أنشأنا متغير s إسمه StringBuffer و القيمة saja ثم إستخدمنا الدالة append لإضافة الكلمة veil لهذه السلسلة النصية ثم طبعنا السلسلة و ستكون النتيجة هي sajaveil.


مثال 8 عن الدالة insert

package str;
public class Str {
    public static void main(String[] args) {
        StringBuffer s=new StringBuffer("saja");
        s.insert(0, "veil");
        System.out.println(s);
    }

}


شرح المثال السابق 8

في هذا المثال إستخدمنا الدالة insert من أجل حشر كلمة veil في بداية السلسلة النصية saja و الرقم 0 يعني إحشر كلمة veil في بداية السلسلة و النتيجة ستكون veilsaja و في حال كتبنا رقم 1 سوف يضيفها بعد حرف s من إسم saja.


مثال 9 عن الدالة replace

package str;

public class Str {
    public static void main(String[] args) {
        StringBuffer s=new StringBuffer("Alsadeq");
        s.replace(0,2, "sajo");
        System.out.println(s);
    }

}


شرح البرنامج السابق 9

لدينا السلسلة النصية Alsadeq و نريد إستبدال جزء منها عبر الدالة replace, إستخدمنا الدالة replace ثم حددنا الرقمين 0,2 يعني إستبدل لنا من الأندكس 0 حتى 2 بكلمة sajo و عند التنفيذ سوف تكون النتيجة sajaadeq.


مثال 10 عن الدالة delete

package str;

public class Str {
    public static void main(String[] args) {
        StringBuffer s=new StringBuffer("Alsadeq");
        s.delete(0, 1);
        System.out.println(s);
    }

}


شرح المثال السابق 10

في هذا المثال طلبنا من البرنامج الحذف من الـ 0 حتى 1 من السلسلة النصية المحددة عبر الدالة delete ثم يطبع السلسلة, وستكون النتيجة هي sadeq لأنه حذف اول حرفين.

لتحميل هذا الدرس بصيغة pdf إضغطوا على صورة تحميل الدرس الآتية

ليست هناك تعليقات:

إرسال تعليق

facebook

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *