GagorAcadmey

تعلم برمجة تطبيقات الاندرويد من الصفر حتي الاحتراف

آخر المواضيع

الخميس، 23 أغسطس 2018

النصوص في جافا


مفهوم النصوص

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

طريقة تعريف String

أبسط طريقة و الأكثر إستخداماً هي تعريفه مثل متغير عادي.

مثال

String welcome = "helo word!";

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


الكلاس String يحتوي على 13 كونستركتور يمكنك استخدامهم لوضع قيمة أولية في النص من خلال عدة مصادر, مثل من مصفوفة أحرف.

مثال

package strings;
public class Test {
public static void main(String[] args) {// هنا قمنا بتعريف مصفوفة من الأحرف
char[] hello= { 'h', 'e', 'l', 'l', 'o' };// من خلال الكونستركتور helloString هنا وضعنا محتوى مصفوفة الأحرف كنص للكائن
String helloString = new String(hello);// helloString هنا قمنا بعرض قيمة الكائن
System.out.println( helloString );
     }
}
سنحصل على النتيجة التالية عند التشغيل.
hello


مفهوم الـ Concatenation

Concatenation تعني إضافة محتوى نص على نص, أي كأنك تنسخ نص و تلصقه في نهاية نص آخر.
يمكنك تطبيق الـ Concatenation في جافا بطريقتين:
  1. بإستخدام العامل +

  2. أو بإستدعاء الدالة concat() التي شرحناها لاحقاً في هذا الدرس.


مثال

سنقوم بتعريف نصين و نعطيهم قيم, ثم سنعرف نص ثالث و نضع النصين السابقين فيه.
package strings;
public class Test {
public static void main(String[] args) {
String s1 = "welcome to ";// هنا قمنا بتعريف النص الأول
String s2 = "google.com";// هنا قمنا بتعريف النص الثاني
String s3 = s1 + s2;      // أضفنا قيمة النصين السابقين في النص الثالث
System.out.println( s3 );// هنا عرضنا قيمة النص الثالث لنتأكد إذا تمت عملية الإضافة كما نريد
     }
}
سنحصل على النتيجة التالية عند التشغيل.
welcome to google.com

دوال الكلاس String

الكلاس String هو كلاس جاهز في الجافا ويحتوي علي دوال كثيرة للتعامل مع النصوص ومن هذه الدوال :
  1. دوال للبحث (Searching).

  2. دوال للتجزيء (Substring).

  3. دوال للتبديل (Replacing).

  4. دوال للمقارنة (Comparison).

  5. دوال للمعالجة (Manipulation).


الكلاس String يعتبر Immutable class و هذا يعني أنك عندما تستدعي أي دالة على String, لن تعدل محتوى الـ String, الذي قام باستدعائها, بل سترجع لك نسخة معدلة من هذا الـ String و سيبقى الـ String الأصلي كما هو .

دوال البحث

إسم الدالة تعريفها
()charAt ترجع الحرف الموجود على الـ index الذي نحدده في الـ argument للـ String الذي قام بإستدعائها.
()indexOf تبحث عن أول index يوجد فيه الحرف الذي نضعه كـ argument في الـ String الذي قام بإستدعائها و ترجعه.
()lastIndexOf تبحث عن آخر index يوجد فيه الحرف أو النص الذي نضعه كـ argument في الـ String الذي قام بإستدعائها و ترجعه.
()contains ترجع true إذا كان الـ String الذي قام بإستدعائها يحتوي على الـ CharSequence الذي نضعه كـ argument.

دوال التجزي

إسم الدالة تعريفها
()substring ترجع String جديدة عبارة عن substring من الـ String الذي قام باستدعائها.
()subSequence ترجع جزء نحدده من محتوى الـ String كمصفوفة نوعها CharSequence.
()split تقسم الـ String إلى مصفوفة نوعها String و ترجعها.

دوال التبديل

إسم الدالة تعريفها
()replace تأخذ إثنين arguments عبارة عن char أو CharSequence.
تبحث عن قيمة الـ argument الأول في كل محتوى الـ String الذي قام باستدعائها و تبدلها بقيمة الـ argument الثاني.
()replaceAll تأخذ إثنين arguments عبارة عن String, الأول عبارة عن الجزء الذي نريده أن يتبدل في كل محتوى الـ String الذي قام باستدعائها, و الثاني عبارة عن الجزء الذي سيحل مكانه.
()replaceFirst تأخذ إثنين arguments عبارة عن String, الأول عبارة عن الجزء الذي نريده أن يتبدل في أول مكان يتم إيجاده في الـ String الذي قام باستدعائها, و الثاني عبارة عن الجزء الذي سيحل مكانه.

دوال المقارنة

إسم الدالة تعريفها
()startsWith تختبر قيمة الـ argument, إذا كانت موجودة في بداية الـ String الذي قام باستدعائها سترجع true.
()endsWith تختبر قيمة الـ argument, إذا كانت موجودة في نهاية الـ String الذي قام باستدعائها سترجع true.
()equals تقارن الـ String الذي قام باستدعائها مع أي كائن نضعه كـ argument.
()equalsIgnoreCase تقارن الـ String الذي قام باستدعائها مع الـ String الذي نضعه كـ argument.
لا يهمها إذا كانت الأحرف كبير أو صغيرة.
()contentEquals تقارن الـ String الذي قام باستدعائها مع الـ StringBuffer الذي نضعه كـ argument و ترجع true فقط في حال كانت جميع أحرفهم متطابقة.
()compareTo تقارن الـ String مع أي كائن آخر نضعه كـ argument.
()compareToIgnoreCase تقارن الـ String الذي قام باستدعائها مع الـ String الذي نضعه كـ argument.
و لا يهمها إذا كانت الأحرف كبير أو صغيرة.
()matches تحدد إذا كان الـ String يطابق الشرط الموضوع أم لا.
()regionMatches تحدد إذا كان إثنين String عندهم جزأين متساويان أم لا.

دوال المعالجة

إسم الدالة تعريفها
()concat تضيف محتوى الـ argument في آخر الـ String الذي قام بإستدعائها.
()copyValueOf تنسخ محتوى مصفوفة الأحرف التي نضعها كـ argument في String و ترجعها.
()getChars تنسخ أحرف الـ String الذي قام باستدعائها بداخل مصفوفة من الأحرف نضعها كـ argument مع تحديد النطاق الذي نريد نسخه و المكان الذي نريد وضع الأحرف فيه.
()hashCode ترجع hash span للـ String الذي قام باستدعائها.
()intern تمنع وجود أكثر من String يحتوى على نفس المحتوى, لذلك هي مهمة جداً من أجل التخزين. فهي تسرع عمل المعالج و تحفظ مساحات الذاكرة.
()length ترجع طول الـ String
()toCharArray تحول الـ String لمصفوفة نوعها char و ترجعها.
()toLowerCase تحول جميع أحرف الـ String لأحرف صغيرة.
()toUpperCase تحول جميع أحرف الـ String لأحرف كبيرة.
()trim ترجع نسخة من الـ String لا تحتوي على مسافات فارغة في بدايتها و نهايتها.
()valueOf ترجع أي قيمة نضعها كـ argument كـ String

تدعم جافا بعض التسلسلات الخاصة بالمسافات ومنها

الرمز الوظيفة
\n Newline
\r Carriage return
\t tap
\" Double quote
\' Single quote
\s space
\\ backslash

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

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

صفحتنا علي الفيسبوك

التسميات

المتواجدين حاليا