جافا هي لغة برمجة موجهة للكائنات تستخدم لكتابة التطبيقات والتطبيقات الصغيرة. أحد الجوانب المهمة لبرمجة جافا هو العمل مع السلاسل. في جافا ، السلسلة هي كائن ، مما يعني أنه لمقارنة السلاسل ، يجب عليك استخدام الطرق التي توفرها فئة السلسلة.
واحدة من أكثر الطرق شيوعا لمقارنة السلاسل في جافا هي طريقة يساوي. تسمح لك هذه الطريقة بمقارنة محتويات صفين من أجل المساواة. ترجع طريقة يساوي صحيح إذا كانت كلتا السلسلتين تحتويان على نفس الأحرف ، وإلا فإنها ترجع خطأ.
عند استخدام طريقة يساوي لمقارنة السلاسل في جافا ، فمن الضروري أن تأخذ في الاعتبار خصوصيات مقارنة الأحرف. في جافا ، تتم مقارنة الأحرف بناء على ترتيبها في جدول أحرف يونيكود. إذا كانت سلسلتان تحتويان على نفس الأحرف ولكن أرقام تسلسل مختلفة (نقطة رمز يونيكود) لهذه الأحرف ، فإن طريقة يساوي ترجع خطأ.
على سبيل المثال ، إذا كان هناك سلسلتان "مرحبا" و "مرحبا" ، فإن طريقة يساوي ترجع خطأ ، لأنه في يونيكود الحرف "ن" له رقم ترتيبي مختلف عن الحرف "ن".
وتجدر الإشارة أيضا إلى أن طريقة يساوي حساسة لحالة الأحرف. هذا يعني أن السلاسل "جافا" و "جافا" ستعتبر مختلفة ، وستعود الطريقة المتساوية كاذبة. إذا كنت بحاجة إلى مقارنة سلاسل حالة حساسة ، يمكنك استخدام طريقة إيكالسينوريكاس.
- مقارنة سلسلة في جافا
- طريقة يساوي
- ترتيب التنفيذ
- مقارنة حساسة لحالة الأحرف
- مقارنة غير حساسة لحالة الأحرف
- نتيجة المقارنة
- نطاق الانطباق
- سؤال وجواب
- كيف تعمل مقارنة السلسلة في جافا باستخدام طريقة يساوي?
- ما هي الطرق الأخرى التي يمكن استخدامها لمقارنة السلاسل في جافا?
- هل من الممكن مقارنة السلاسل باستخدام عامل التشغيل = = في جافا?
مقارنة سلسلة في جافا
مقارنة سلسلة في جافا هي واحدة من العمليات الرئيسية عند العمل مع السلاسل. لمقارنة السلاسل في جافا ، يمكنك استخدام عامل المقارنة == أو طريقة يساوي (). في الوقت نفسه ، ينبغي أن تؤخذ بعض ميزات عمل هذين النهجين في الاعتبار.
- يقارن عامل المقارنة == الإشارات إلى الكائنات ، وليس محتوياتها. إذا كان هناك متغيران يحتويان على إشارات إلى نفس السلسلة في الذاكرة ، فإن عامل التشغيل يعود صحيحا. خلاف ذلك ، إذا كانت السلاسل مختلفة ، يقوم المشغل بإرجاع خطأ.
- طريقة يساوي () يقارن محتويات سلسلتين ويعود صحيح إذا كانت السلاسل متطابقة ، وكاذبة خلاف ذلك. هذه الطريقة هي طريقة أكثر موثوقية لمقارنة السلاسل ، لأنها لا تقارن الإشارات إلى الكائنات ، ولكن محتوياتها.
أمثلة على استخدام عامل المقارنة = = وطريقة يساوي() :
سلسلة ستري1 = "مرحبا";
سلسلة ستر2 = "مرحبا";
String str3 = new String("Hello");
System.out.println(str1 == str2); // true
System.out.println(str1.equals(str2)); // true
System.out.println(str1 == str3); // false
System.out.println(str1.equals(str3)); // true
В примере выше, переменные str1 и str2 ссылаются на один и тот же объект в памяти, содержащий строку «Hello». Поэтому оператор сравнения == и метод equals() возвращают значение true.
ينشئ متغير ستري3 كائنا جديدا في الذاكرة يحتوي على السلسلة"مرحبا". لذلك ، يقوم عامل المقارنة == بإرجاع خطأ ، وتعود الطريقة المتساوية () بشكل صحيح.
باستخدام طريقة يساوي () لمقارنة السلاسل ، يمكنك التحقق من محتوياتها بغض النظر عن مكان تخزين بيانات السلسلة في الذاكرة. هذا مفيد بشكل خاص إذا تم إنشاء السلاسل باستخدام المشغل الجديد.
طريقة يساوي
طريقة يساوي هي واحدة من الطرق الأساسية لفئة الكائن ، والتي يتم تجاوزها من قبل العديد من الفئات في جافا. يتم استخدامه لمقارنة كائنين لتكافؤهما. في حالة فئة السلسلة ، تتيح لك هذه الطريقة مقارنة سلسلتين لكل محتوى.
بناء الجملة من طريقة يساوي يبدو مثل هذا:
| الطريقة | الوصف | قيمة الإرجاع |
|---|---|---|
| هل عام منطقي يساوي (كائن كائن) | يقارن الكائن الحالي مع الكائن الذي تم تمريره كمعلمة. | صحيح-إذا كانت الكائنات متكافئة ، كاذبة-خلاف ذلك. |
لاستخدام طريقة يساوي ، يجب أن تكون الكائنات التي تتم مقارنتها من نفس النوع. إذا كانت الكائنات من أنواع مختلفة ، فإن طريقة يساوي دائما العودة كاذبة.
على سبيل المثال:
"'جافا
نص السلسلة 1 = "مرحبا";
نص السلسلة 2 = "مرحبا";
النتيجة المنطقية = النص1.يساوي (النص 2) ؛ / / خطأ ، لأن السلاسل الحساسة لحالة الأحرف مختلفة
"`
بشكل افتراضي ، تقارن طريقة يساوي الكائنات بالرجوع ، أي. يتحقق مما إذا كانوا يشيرون إلى نفس موقع الذاكرة. ومع ذلك ، بالنسبة لفئة السلسلة ، تم إعادة تعريف طريقة يساوي بطريقة تقارن السلاسل حسب المحتوى — حرف بحرف.
على سبيل المثال:
"'جافا
نص السلسلة 1 = "مرحبا";
نص السلسلة 2 = "مرحبا";
النتيجة المنطقية = النص1.يساوي (النص 2) ؛ / / صحيح ، لأن السلاسل متطابقة
"`
بالإضافة إلى طريقة يساوي ، تتوفر أيضا طرق مقارنة السلسلة الأخرى في فئة السلسلة ، مثل متساوي ، الذي يقارن السلاسل غير الحساسة لحالة الأحرف ، و كومباريتو ، الذي يقارن السلاسل معجميا.
ترتيب التنفيذ
.
.
من المهم ملاحظة أنه عند مقارنة السلاسل ، يتم أخذ قضيتهم في الاعتبار. وهذا يعني أن السلاسل ذات السجلات المختلفة (على سبيل المثال ، " جافا "و" جافا") ستعتبر مختلفة.
:
سلسلة ستري1 = "مرحبا";
سلسلة ستر2 = "مرحبا";
النتيجة المنطقية = ستر1.يساوي (ستر 2);
النظام.خارج.برينتلن (نتيجة) ؛ / / مخرجات كاذبة
.
. مثال:
سلسلة ستري1 = "جافا";
سلسلة ستر2 = "جافا";
النتيجة المنطقية = ستر1.إيكوالسينوريكاس (ستر 2);
النظام.خارج.برينتلن (نتيجة); // المخرجات صحيح
.
مقارنة حساسة لحالة الأحرف
لمقارنة السلاسل في جافا ، يتم استخدام الأحرف الحساسة لحالة الأحرف بشكل افتراضي. هذا يعني أن السلاسل ذات حالة الأحرف المختلفة ستعتبر مختلفة.
على سبيل المثال ، الكود التالي:
سلسلة ستري1 = "مرحبا";
سلسلة ستر2 = "مرحبا";
النظام.خارج.برينتلن (ستري1.يساوي (ستر 2)) ؛ / / خطأ
- الحرف الصغير "ص".
. تقارن هذه الطريقة أيضا محتويات السلاسل ، ولكنها تتجاهل حالة الأحرف.
على سبيل المثال ، الكود التالي:
سلسلة ستري1 = "مرحبا";
سلسلة ستر2 = "مرحبا";
النظام.خارج.برينتلن (ستري1.إيكالسينوريكاس (ستر 2)) ؛ / / صحيح
يتجاهل الاختلافات في حالة الأحرف ويقارن محتوياتها فقط.
من المهم ملاحظة أن المقارنات الحساسة لحالة الأحرف وغير الحساسة لحالة الأحرف يمكن أن تؤدي إلى نتائج مختلفة. لذلك ، عند مقارنة السلاسل ، من الضروري اختيار الطريقة المناسبة اعتمادا على منطق المقارنة المطلوب.
مقارنة غير حساسة لحالة الأحرف
عند مقارنة السلاسل في جافا باستخدام طريقة يساوي ، يمكنك تحديد أن يتم تجاهل حالة الحرف. يمكن أن يكون هذا مفيدا عندما تحتاج إلى التحقق مما إذا كانت السلاسل متساوية ، بغض النظر عما إذا كانت مكتوبة بأحرف كبيرة أو صغيرة.
بالنسبة للمقارنات غير الحساسة لحالة الأحرف ، يمكنك استخدام طريقة إيكالسينوريكاس. إنه يعمل بنفس طريقة المساواة المعتادة ، لكنه لا يأخذ في الاعتبار حالة الأحرف عند مقارنة السلاسل.
فيما يلي مثال على استخدام طريقة إيكالسينوريكاس:
سلسلة ستري1 = "مرحبا";
سلسلة ستر2 = "مرحبا";
منطقي متساوي المحاذاة = ستر1.إيكوالسينوريكاس (ستر 2);
النظام.خارج.برينتلن (إيسيكوالينوريكاس) ؛ / / صحيح
في هذا المثال ، سيتم اعتبار السلاسل "مرحبا" و "مرحبا" متساوية ، لأن طريقة إيكالسينوريكاس لا تأخذ في الاعتبار الفرق في حالة الأحرف.
تكون المقارنة غير الحساسة لحالة الأحرف مفيدة عندما نريد اعتبار سلسلتين متساويتين ، بغض النظر عن حالة الأحرف. على سبيل المثال ، عند التحقق من إدخال كلمة المرور ، عندما يسمح للمستخدم باستخدام أي حالة من الأحرف.
نتيجة المقارنة
طريقة يساوي إرجاع صحيح إذا كانت قيم السلسلتين المباراة.
إذا كانت السلاسل تحتوي على حالة أحرف مختلفة ، فستكون المقارنة حساسة لحالة الأحرف. على سبيل المثال:
- سيتم اعتبار السلسلة "مرحبا" والسلسلة "مرحبا" مختلفة ، وستكون نتيجة المقارنة خاطئة.
إذا كنت بحاجة إلى مقارنة سلاسل حالة حساسة ، يمكنك استخدام طريقة إيكالسينوريكاس. على سبيل المثال:
- سيتم اعتبار السلسلة "مرحبا" والسلسلة "مرحبا" هي نفسها ، وستكون نتيجة المقارنة صحيحة.
إذا كانت هناك مسافات في بداية الخطوط أو نهايتها ، يتم أخذها أيضا في الاعتبار عند المقارنة. يمكنك استخدام طريقة القطع لإزالة المسافات. على سبيل المثال:
- سيتم اعتبار السلسلة "مرحبا" والسلسلة "مرحبا" مختلفة ، وستكون نتيجة المقارنة خاطئة.
- ومع ذلك ، إذا قمت بتطبيق طريقة القطع على كلا الصفين قبل المقارنة ، فستكون النتيجة صحيحة.
عند مقارنة السلاسل في جافا ، ضع في اعتبارك أن كائنات فئة السلسلة غير قابلة للتغيير ، لذلك يتم إنشاء كائن جديد مع كل عملية. يمكن أن يؤدي ذلك إلى إبطاء عملية المقارنة ، خاصة إذا كان البرنامج يقوم بالعديد من عمليات مقارنة السلاسل.
نطاق الانطباق
يتم استخدام طريقة يساوي في جافا لمقارنة سلسلتين للمساواة. فإنه يعود صحيح إذا كانت محتويات الخطين هي نفسها تماما ، وكاذبة خلاف ذلك.
تعتمد مقارنة السلسلة على قيم الأحرف في كل سطر. هذا يعني أنه يتم أخذ جميع الأحرف في الاعتبار عند مقارنة سلسلة ، بما في ذلك المسافات والحالة والأحرف الخاصة.
تستخدم طريقة المساواة على نطاق واسع في مختلف مجالات البرمجة. وفيما يلي بعض الأمثلة على تطبيقه:
- مقارنة بيانات إدخال المستخدم بالقيم المتوقعة. على سبيل المثال ، عند التحقق من كلمة مرور أو إدخال معرف مستخدم.
- مقارنة السلاسل لتعيين شروط التفرع في البرنامج. على سبيل المثال ، التحقق مما إذا كانت القيمة التي أدخلها المستخدم تتطابق مع سلسلة معينة من أجل تنفيذ إجراءات معينة.
- قارن الصفوف وفرزها في مجموعات البيانات مثل القوائم أو المصفوفات. يتم استخدام طريقة يساوي لتحديد ما إذا كانت المجموعة تحتوي على سلسلة أو لترتيب المجموعة أبجديا.
يمكن أن يكون نطاق طريقة المساواة أوسع ، اعتمادا على متطلبات برنامج أو تطبيق معين. من المهم أن تضع في اعتبارك أن مقارنة السلاسل باستخدام يساوي يعتمد على محتويات السلاسل ، وليس على مراجعها.
سؤال وجواب
كيف تعمل مقارنة السلسلة في جافا باستخدام طريقة يساوي?
يتم استخدام طريقة يساوي في جافا لمقارنة محتويات سلسلتين. يقوم بإرجاع قيمة منطقية من صحيح إذا تطابق محتويات السلاسل ، وخطأ خلاف ذلك. تتم المقارنة بايت بايت ، حرف بحرف ، بدءا من الحرف الأول من السلسلة. إذا تم العثور على عدم تطابق الأحرف ، تتوقف المقارنة وتعيد خطأ. إذا كانت كلتا السلسلتين تتكون من نفس الأحرف ولها نفس الطول ، فإن طريقة يساوي ترجع صحيح.
ما هي الطرق الأخرى التي يمكن استخدامها لمقارنة السلاسل في جافا?
بالإضافة إلى طريقة يساوي ، جافا يمكن استخدام إيكالسينوريكاس ، كومباريتو ، و كومباريتونوريكاس أساليب لمقارنة السلاسل. تقارن طريقة إيكالسينوريكاس السلاسل غير الحساسة لحالة الأحرف. تقارن طريقة كومباريتو سلسلتين وتعيد عددا صحيحا: سالب إذا كانت السلسلة الأولى أصغر من الثانية ؛ موجب إذا كانت السلسلة الأولى أكبر من الثانية ؛ و 0 إذا كانت السلاسل متساوية. طريقة كومباريتونوريكاس يعمل بالمثل ، ولكن حالة حساسة.
هل من الممكن مقارنة السلاسل باستخدام عامل التشغيل = = في جافا?
في جافا ، يتم استخدام عامل التشغيل = = لمقارنة المراجع بالكائنات ، بما في ذلك السلاسل. يقارن عناوين الذاكرة حيث يتم تخزين السلاسل ، وليس محتوياتها. لذلك ، يمكن أن يؤدي استخدام عامل التشغيل = = لمقارنة السلاسل إلى نتائج غير متوقعة. لمقارنة محتويات السلاسل ، استخدم طريقة يساوي أو أشكالها.