النصوص في Java | String بشرح تفصيلي جدًا للمبتدئين
النصوص (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. - نسيان علامات الاقتباس المزدوجة حول النص.
✅ بعد أن تعلّمت النصوص، سنطبّق الآن على مشروع صغير يجمع أكثر من فكرة معًا.