Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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

جزء من قسم Fundamentals في رحلة Java على Coddy — الدرس 21 من 73.

في لغة Java، تختلف مقارنة السلاسل النصية عن مقارنة الأرقام. بينما يمكنك استخدام <، و >، و ==، وما إلى ذلك للأرقام، تتطلب السلاسل النصية طرقاً مختلفة لأنها كائنات (objects)، وليست أنواعاً أولية (primitive).

الطريقة الأكثر شيوعاً وصحة لمقارنة ما إذا كانت سلسلتان نصيتان لهما نفس المحتوى هي استخدام الدالة equals():

String str1 = "hello";
String str2 = "hello";
String str3 = "Hello";

boolean result1 = str1.equals(str2);  // true
boolean result2 = str1.equals(str3);  // false (حساس لحالة الأحرف)

باستخدام equalsIgnoreCase() إذا كنت تريد مقارنة السلاسل النصية دون مراعاة حالة الأحرف (كبيرة/صغيرة):

String str1 = "Hello";
String str2 = "hello";

boolean result = str1.equalsIgnoreCase(str2);  // true

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

String str1 = "hello";
String str2 = "hello";

boolean result = (str1 == str2); 

لا تقارن السلاسل النصية باستخدام علامة ==!

ورقة مرجعية

في لغة Java، تُعد السلاسل النصية (strings) كائنات وتتطلب دوالاً خاصة للمقارنة:

استخدم equals() لمقارنة محتوى السلاسل النصية (حساس لحالة الأحرف):

String str1 = "hello";
String str2 = "hello";
String str3 = "Hello";

boolean result1 = str1.equals(str2);  // true
boolean result2 = str1.equals(str3);  // false

استخدم equalsIgnoreCase() لمقارنة السلاسل النصية مع تجاهل حالة الأحرف:

String str1 = "Hello";
String str2 = "hello";

boolean result = str1.equalsIgnoreCase(str2);  // true

هام: لا تستخدم == لمقارنة السلاسل النصية - فهي تقارن مراجع الكائنات (object references)، وليس المحتوى.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals