أساسيات التعامل مع النصوص 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

خاتمة

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

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

مصطفى الطيب

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

مقالات ذات صلة

تعليق واحد

اترك تعليقاً

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