أساسيات التعامل مع النصوص Strings في لغة جافا

ما تقرأُهُ الآن هو نصٌ يتكون من عدد من الأحرف. كما أن المكوّن الأساسي لكل ملف شفرة مصدرية في لغة جافا هو الحروف والتي تكوّن جُملاً يُحوّلُها المُترجم Compiler إلى أوامر ينفذها الحاسب.

أردتُ هنا لفتَ انتباهك إلى أهمية الحروف والنصوص في لغة جافا.. لا ليست لغة جافا فقط !! بل جميع لغات البرمجة!

أطلِ التفكير قليلاً وستجد أن البرامج التي تحتاج إلى قدرات عالية في التعامل مع النصوص هي برامجُ أساسية ومهمة جداً، مثل محرر النصوص الأساسي الموجود ببرنامج الويندور Notepad وحزمة البرامج الأساسية في Microsoft Office مثل الوورد Word و الإكسل Excel و مستعرض الشرائح Powerpoint.

بل أكثر من ذلك، فتطوير وبرمجة بيئات التطوير المتكاملة تحتاجُ كذلك إلى قدرات عالية في التعامل مع النصوص وهي البئاتُ التي تُسهُّلُ لك إنتاج البرامج بسرعةٍ عالية ويُسر.

في هذه التدوينة ستتعرّف على مفاهيمٍ أساسية في التعامل مع النصوص في لغة جافا مع أمثلةٍ خفيفةٍ ولطيفة تساعدك على إكمال الفهم بالشفرات المصدرية المميزة.

انتبه: لا تخلط بين الأصل والفرع والحجر والجدار والحرف والنص 

في لغة جافا يُعرف النص بأنه مجموعة من الحروف Characters المتلاصقة والتي تُوضع بين علامتي تنصيص كما ترى أدناه

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

ميّز الفرق بين الأحرف التي توضع بين علامتي تنصيص وبين علامتي تنصيص مفردة، فعلامتي التنصيص المفردة تستخدم لتعريف الأحرف char.

        char character = 'a';
        String string = "m";

أولى الأساسيات: إنشاءُ متغيّر عبر الشفرة المصدرية ووضعهُ في ذاكرة الحاسب

تعريف النصوص Strings هي الخطوة الأولى في التعامل مع النصوص، فتعريفك للنص يعني أنشأت كائناً من النوع String وحجز مكانه بذاكرة حاسبك.

هل ترغب في معرفة كيف تستطيع حجز مساحة بالذاكرة لنصوصك؟ انظر الى الشفرة المصدرية التالية

        String something = new String();

في هذه الخطوة تكون قد عرّفت نصاً أسميتهُ something وحجزت لهُ مكاناً بالذاكرة، هلا لاحظتَ شيئاً مفقوداً في هذا التعريف؟!!

إنّه النّص.

تعريف النص بهذه الطريقة يماثلُ تماماً تعريفك لمتغيّرٍ نصيٍ فارغ مثلما ترى أدناه

        String something = "";

أما إذا أردت أن تضع نصاً داخل متغيّرك فما عليك إلا أن تتبع إحدى الطريقتين التاليتين

        String something = "";

بالإضافة الى الطريقتين السابقتين هنالك طريقةٌ أخرى، فبما أن النصوص تتكون من مجموعة من الحروف المتلاصقة ( مصفوفة أحرف) فمن الممكن تحويل مصفوفة الحروف إلى نص بطريقة سهلة وبسيطة وهي عبر إرسال مصفوفة الحروف إلى منشئ الفئة class constructor

        char[] oolomChars = {'O', 'o', 'l', 'o','m', ' ', 'B', 'l', 'o','g'};
        String oolomBlog = new String(oolomChars);
        System.out.println(oolomBlog);

لتكون النتيجة

تحويل مصفوفة الحروف إلى نص String
تحويل مصفوفة الحروف إلى نص String

أمثلة لدوال أساسية تساعدك على التعامل مع النصوص في لغة جافا

بعد أن تُنشئ نصاً في برنامجك عبر شفرتك المصدرية فغالبا ما تحتاج إلى التعامل معه بطُرُقٍ مختلفة مثل البحث عن حرف أو عن نص داخل النص أو معرفة طول النص أو اجتزاء جزء من النص وغيرها من التعاملات المتعددة المُمكن إنجازها في النصوص.

وبالتأكيد لغة جافا ملئى بالدوال المساعدة على إنجاز عشرات العمليات على النصوص، ولكن كما اتفقنا فإننا نتعامل مع الأساسيات هنا فأشرح لك دالتين من الدوال الأساسية المهمة في التعامل مع النصوص.

(1) طول النص في جافا

لمعرفة طول النص في لغة جافا ما عليك إلا استخدام احدى الدوال الجاهزة في مكتبة جافا والمُسمّاة length.

هذه الدالّة موجودة ضمن الفئة String وما عليك إلا مناداتها بالطريقة التالية

        String url = "oolom.com";
        System.out.println("Length = " + url.length());

تُرجع دالة length عدد الأحرف في النص. هناك خطأ شائع وخلط بين عدد الأحرف في النص و ترتيب آخر حرف النص


تُرجع الدالة length طول النص بحيث يبدأ العدّ من الرقم 1، على عكس ما يحدث عند السؤال عن ترتيب عنصر بالمصفوفة حيث يبدأ العدّ حينها من الرقم صفر. فكلمة oolom ترتيب آخر حرف بها m هو 4 بينما عدد حروفها length  يساوي 5

شاهد نتيجة تنفيذ المثال السابق

طباعة طول النص
طباعة طول النص

(2) البحث عن حرف في مكانٍ محدد داخل نص

الآن نأتي للحديث عن البحث عن حرف عبر موقعه داخل نص..

سأعطيك مثالاً.

فلنفترض أنك أردتَ تشفير كلمةٍ ما بخوارزمية قيصر، عندها تكونُ أول خطوة هي تقسيم الكلمة إلى أحرف حتى تستطيع إجراء التشفير الذي ترغبُ به.

في حال لم تكن تعلم ما هي خوارزمية قيصر، ببساطة هي إحلال كل حرف في الكلمة بالحرف الذي يأتي بعد س حرف في الأبجدية. حيثُ أن س هي رقم ثابت. مثلاً كلمة “أنت” مع س=2 تصبح “توج” لأن (أ،ب،ت و ن،ه،و و ت،ث،ج).

نعودُ إلى موضوعنا، أنت الآن ترغب بتقسيم كلمة “oolom.com” إلى أحرف، كيف تفعلُ ذلك؟

أولاً ما هي الدالة التي سنستخدمها؟ إنها charAt

        String url = "oolom.com";
        System.out.println("First Character = " + url.charAt(0));

دوال جافا الجاهزة دوماً تساعدنا، شاهد المثال

طباعة الحروف مفصولة عبر charAt
طباعة الحروف مفصولة عبر charAt

خاتمة

معرفة طريقة التعامل مع النصوص مهمة جداً لك كمبرمج، في هذه التدوينة تعرّفت على مبادئ بسيطة في التعامل مع النصوص وهي طريقة إنشاء نص وكيف يتم تخزينه بالذاكرة.

كذلك تعرّفت على طرق التعامل مع دالّتين مهمتين من كبداية فقط في طريق التعامل مع دوال النصوص في لغة جافا، والمطلوبُ منك الآن هو أن تواصل البحث والتعلّم عن طُرق التعامل مع النصوص. فحتماً ستحتاج الكثير منها خلال عملك البرمجي.

المرحلة التالية هي الاطلاع على الصنف الهائل StringJoiner والتعامل الراقي مع النصوص


قد يعجبك أيضا

ما هو الصنف أو الفئة Class؟ وما هو الكائن Object؟ مع نظرة على الوراثة Inheritance

ما هو الصنف أو الفئة Class؟ وما هو الكائن Object؟ مع نظرة على الوراثة Inheritance

لماذا لغة جافا آمنة؟ كائن واحد يقدم جل المزايات الأمنية و الحماية لبرامج جافا

لماذا لغة جافا آمنة؟ كائن واحد يقدم جل المزايات الأمنية و الحماية لبرامج جافا
ما رأيك؟ اترك تعليقاً أدناه


  1. السلام عليكم ورحمة الله وبركاته
    الاخوة المعلمون حفظكم الله
    انا لا ادرري كيف نكتب لكم حتى تفهمونا حول التعامل مع جافا لتخدمنا في مجالاتنا الخدمية العربية ،، مثلا انا صممت برنانج لمدرسة وفيها قاعدة بيانات لادارة مدرسة ،، يا ترى اكتب بياناتها بالعربي ام بالفرنساوى والا بالنجليزي ،، طبعا بالعربي ،طيب مدير المدرسة يريد ان يعمل على هذاالبرنامج ، يدخل اسماء طلابه درجاتهم تقيماتهم ،، يبحث عن طالب ، الى غير ذلك ، هذا الموضوع نريده ان يتم بالعربي ،، يا ترا نصمم دوال خاصة بذلك عن طريق لغة سي مثلا ونستدعيها في جافا ام هي جافا فيها هذه الامكانية ،،، اظن افتهمتم ماذا نريد
    وودمتم سالمين

    1. وعليكم السلام ورحمة الله وبركاته عبدالله،
      شكراً لك على سؤالك ويبدو لي أن لديك مشكلة عويصة لم أستطيع فهمها من سؤالك.
      هل تعني أن جافا لا تدعم اللغة العربية أم ماذا؟!

{"email":"البريد الالكتروني غير صحيح","url":"رابط الموقع غير صحيح","required":"بعض الحقول المطلوبة لم تتم تعبئتها"}

نجاح!

تنبيه!

خطأ!