النصوص في Java | String بشرح تفصيلي جدًا للمبتدئين

20:00 دقائق مجاني
شرح String من الصفر: إنشاء النصوص، دمجها، طولها، استخراج حرف، وأهم نقطة: المقارنة الصحيحة باستخدام equals بدل ==.

النصوص (Strings) من أكثر الأشياء استخدامًا في أي برنامج: أسماء، رسائل، كلمات مرور، عناوين، وغير ذلك. في Java نمثّل النص باستخدام النوع String.

قد يبدو التعامل مع النص بسيطًا، لكن يوجد خطأ شائع جدًا يقع فيه المبتدئون: وهو مقارنة النصوص باستخدام ==. سنشرح هذا بالتفصيل لأن فهمه مهم للغاية.

إنشاء String وطباعته ودمج النصوص

لإنشاء نص نكتب:

String firstName = "Ahmed";
String lastName = "Ali";

ولدمج النصوص نستخدم علامة +:

String fullName = firstName + " " + lastName;
System.out.println(fullName);

لاحظ أننا وضعنا مسافة بين الاسمين باستخدام " ".

طول النص length واستخراج حرف charAt

يمكن معرفة طول النص (عدد الحروف) باستخدام:

String name = "Ahmed";
System.out.println(name.length()); // 5

وللحصول على حرف معيّن نستخدم charAt. ولكن انتبه: الفهرس يبدأ من الصفر:

System.out.println(name.charAt(0)); // A
System.out.println(name.charAt(4)); // d

إذا حاولت الوصول إلى فهرس خارج الحدود (مثل charAt(10)) سيظهر خطأ أثناء التشغيل.

أهم نقطة: مقارنة النصوص (equals بدل ==)

قد تظن أن مقارنة نصين تتم هكذا:

String a = "test";
String b = "test";

System.out.println(a == b);

لكن هذا غير مضمون دائمًا في Java؛ لأن == يقارن “هل الشيئان نفس المكان في الذاكرة؟” وليس “هل محتواهما متساوٍ؟”.

المقارنة الصحيحة لمحتوى النص تكون باستخدام equals:

System.out.println(a.equals(b)); // true

قاعدة ذهبية:

  • للمقارنة بين الأعداد استخدم ==.
  • للمقارنة بين النصوص استخدم equals.

أمثلة إضافية لتثبيت الفكرة

مثال: مقارنة إدخال المستخدم:

String answer = "yes";

if (answer.equals("yes")) {
  System.out.println("تم الاختيار: نعم");
} else {
  System.out.println("تم الاختيار: شيء آخر");
}

لاحظ أننا استخدمنا equals داخل الشرط.

أخطاء شائعة في String

  • كتابة string بدل String (الحروف حساسة في Java).
  • مقارنة النصوص باستخدام == بدل equals.
  • نسيان علامات الاقتباس المزدوجة حول النص.

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