الانتقال إلى المحتوى الرئيسي

كيفية مقارنة سلاسل شار: الأساليب الأساسية والأمثلة

مقارنة السلسلة هي إحدى العمليات الرئيسية عند العمل مع النص. ومع ذلك ، عند العمل مع سلاسل الأحرف (شار) في لغة البرمجة ، قد تكون هذه العملية أكثر تعقيدا إلى حد ما من مقارنة السلاسل العادية. في هذه المقالة ، سوف ننظر في الطرق الرئيسية لمقارنة سلاسل شار وتقديم أمثلة على استخدامها.

الطريقة الأولى والأسهل لمقارنة سلاسل شار هي استخدام عامل التشغيل "= = " (المساواة المزدوجة). يقارن عامل التشغيل "= = " أحرف السلسلة برموز أسي الخاصة بهم ، لذلك سيعود صحيحا فقط إذا كانت الأحرف في كلا السلسلتين متطابقة (لها نفس رمز أسي).

ومع ذلك ، عند استخدام عامل التشغيل "= = " ، ضع في اعتبارك أنه يقارن الأحرف في السلاسل فقط حتى الحرف الأول الفارغ ('\0'). هذا يعني أنه عند مقارنة السلاسل التي لا تحتوي على حرف فارغ في النهاية ، يمكن أن يؤدي عامل التشغيل "==" إلى نتيجة غير صحيحة.

طريقة أخرى لمقارنة سلاسل شار هي استخدام طريقة يساوي (). على عكس عامل التشغيل "= = " ، تقارن طريقة يساوي() الأحرف في السلاسل حتى نهاية السلسلة ، بما في ذلك الحرف الفارغ. لذلك ، تسمح لك هذه الطريقة بمقارنة السلاسل بشكل صحيح ، حتى لو لم يكن لها حرف فارغ في النهاية.

  1. طرق لمقارنة سلاسل شار
  2. طريقة مقارنة حرف بحرف
  3. طريقة مقارنة باستخدام طريقة كومباريتو
  4. طريقة مقارنة باستخدام طريقة يساوي
  5. طريقة مقارنة باستخدام طريقة المقارنة
  6. طريقة المقارنة باستخدام السلسلة.طريقة القيمة
  7. سؤال وجواب
  8. ما هي الطرق لمقارنة سلاسل شار?
  9. هل من الممكن مقارنة سلاسل شار ببساطة باستخدام عامل المساواة?
  10. ما هي الوظيفة الأنسب لمقارنة سلاسل شار?
  11. ما هي الأمثلة التي يمكن تقديمها لمقارنة سلاسل شار?
  12. ما هي المعلمات الأخرى التي يمكن تحديدها عند مقارنة سلاسل شار باستخدام وظائف?
  13. هل من الممكن مقارنة سلسلتين إذا كانت مكتوبة في سجلات مختلفة?

طرق لمقارنة سلاسل شار

هناك عدة طرق لمقارنة سلاسل شار في لغة برمجة مثل جافا.

واحدة من أكثر الطرق شيوعا لمقارنة السلاسل هي استخدام طريقة يساوي (). هذا الأسلوب يقارن محتويات سلسلتين ويعود صحيح إذا كانت متطابقة ، وكاذبة خلاف ذلك.

رمز المثال:

شار [] ستر1 = {'ح' ، 'ه' ، 'ل' ، 'ل' ، 'س'};

شار [] ستر2 = {'ح' ، 'ه' ، 'ل' ، 'ل' ، 'س'};

إذا (صفائف.يساوي (ستر 1 ، ستر 2)) {

النظام.خارج.برينتلن ("سلاسل ستري1 و ستري2 متطابقة");

} آخر {

النظام.خارج.برينتلن ("سلاسل ستري1 و ستري2 مختلفة");

}

الناتج:

سلاسل ستر 1 و ستر 2 متطابقة

هنا هو أسلوب المصفوفات.يساوي () يقارن محتويات صفائف شار وإرجاع نتيجة المقارنة.

هناك أيضا طريقة كومباريتو () التي تقارن السلاسل معجميا. تقوم هذه الطريقة بإرجاع رقم سالب إذا كان الصف الحالي أصغر من الصف الذي تم تمريره ، ورقم موجب إذا كان الصف الحالي أكبر من الصف الذي تم تمريره ، و 0 إذا كانت الصفوف متطابقة.

رمز المثال:

سلسلة ستري1 = "تفاحة";

سلسلة ستر2 = "الموز";

كثافة العمليات النتيجة = ستر1.كومباريتو (ستري 2);

إذا (النتيجة < 0) {

النظام.خارج.برينتف ("٪ق أقل من ٪ ق " ، ستري1 ، ستري2);

} آخر إذا (النتيجة > 0) {

النظام.خارج.برينتف ("٪س أكبر من ٪ س " ، ستري1 ، ستري2);

} آخر {

النظام.خارج.برينتف ("٪ق و ٪ ق متطابقة " ، ستر 1 ، ستر 2);

}

خاتمة:

التفاح أصغر من الموز

هنا ، تقارن طريقة كومباريتو () السلاسل "التفاح" و "الموز" وإرجاع رقم سالب ، لأن "التفاح" أصغر من "الموز".

يمكنك أيضا استخدام طريقة كومباريتوينوريكاس () ، الذي يقارن سلاسل حساسة لحالة الأحرف. تعمل هذه الطريقة بشكل مشابه لطريقة كومباريتو () ، ولكنها لا تأخذ في الاعتبار حالة الأحرف عند مقارنة السلاسل.

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

رمز المثال:

سلسلة ستري1 = "مرحبا";

سلسلة ستر2 = "مرحبا";

إذا (ستر1 = = ستر2) {

النظام.خارج.برينتلن ("سلاسل ستر 1 و ستر 2 تشير إلى نفس الكائن");

} آخر {

النظام.خارج.برينتلن ("سلاسل ستري1 و ستري2 مختلفة");

}

الناتج:

سلاسل ستر 1 و ستر 2 تشير إلى نفس الكائن

هنا ، يقارن عامل التشغيل = = الإشارات إلى الكائنات في السلاسل" مرحبا "و" مرحبا " ويعود صحيحا ، لأن المراجع تشير إلى نفس الكائن.

وبالتالي ، هناك عدة طرق لمقارنة سلاسل شار في لغة البرمجة ، والتي يمكن اختيارها اعتمادا على المهمة ومتطلبات نتائج المقارنة.

طريقة مقارنة حرف بحرف

مقارنة حرف سلاسل شار حسب الحرف هي واحدة من الطرق الرئيسية للمقارنة. وهو يتألف من مقارنة كل حرف من سلسلتين في حلقة. إذا كانت الأحرف في نفس الموضع متساوية ، فستستمر المقارنة بمقارنة الأحرف التالية. إذا اختلفت الأحرف في نفس الموضع في مرحلة ما ، فسيتم مقاطعة المقارنة ويتم إرجاع النتيجة المقابلة.

. Ниже приведен простой пример кода:

String str1 = "Пример";

String str2 = "Привет";

boolean isEqual = true;

for (int i = 0; i < str1.length() && i < str2.length(); i++) {

if (str1.charAt(i) != str2.charAt(i)) {

isEqual = false;

break;

}

}

if (isEqual) {

System.out.println("Строки равны");

} else {

System.out.println("Строки не равны");

}

. يتم عرض نتيجة المقارنة في النهاية.

عند مقارنة حرف سلاسل شار بحرف ، يجب أن يؤخذ طولها في الاعتبار. إذا كان أحد الأسطر أقصر من الآخر ، فلن تشارك أحرف هذا السطر في المقارنة.

لن يتم اعتبارها متساوية حتى مع مقارنة شخصية بحرف ، لأن الشخصيات في نفس المواضع تختلف.

طريقة مقارنة باستخدام طريقة كومباريتو

تم تصميم طريقة كومباريتو لمقارنة اثنين من سلاسل شار. يقوم بإرجاع عدد صحيح يوضح أي من السلاسل له ترتيب معجمي. إذا كانت النتيجة صفرا ، فهذا يعني أن الصفوف متساوية. إذا كانت النتيجة سالبة ، فهذا يعني أن السطر الأول يأتي قبل السطر الثاني. إذا كانت النتيجة موجبة ، فهذا يعني أن السطر الأول يأتي بعد السطر الثاني.

مثال على استخدام طريقة كومباريتو:

الطبقة العامة الرئيسية {

العامة ثابت الفراغ الرئيسي (سلسلة[] الحجج) {

سلسلة ستر1 = "أبك";

سلسلة ستر2 = "ديف";

String str3 = "abc";

int result1 = str1.compareTo(str2);

System.out.println(result1); // Output: -3

int result2 = str1.compareTo(str3);

System.out.println(result2); // Output: 0

int result3 = str2.compareTo(str1);

System.out.println(result3); // Output: 3

}

}

В данном примере мы создаем три переменные типа String. Затем мы сравниваем переменные с помощью метода compareTo и выводим результат. في المقارنة الأولى ، والنتيجة هي -3 ، منذ سلسلة "أبك" يأتي قبل سلسلة "ديف". في المقارنة الثانية ، والنتيجة هي 0 ، لأن السلاسل" أبك "و" أبك " متساوية. في المقارنة الثالثة ، والنتيجة هي 3 ، منذ سلسلة " ديف "يأتي بعد سلسلة"أبك".

باستخدام طريقة كومباريتو يسمح لك لمقارنة سلاسل شار أكثر مرونة ومعرفة أي من السلاسل يأتي قبل الآخر في ترتيب المعجمية.

طريقة مقارنة باستخدام طريقة يساوي

لمقارنة سلسلتين شار في جافا ، يمكنك استخدام طريقة يساوي ، والتي تقارن بشكل افتراضي محتويات السلاسل ، أي قيم كل حرف فيها.

بناء الجملة:

سلسلة سلسلة 1 = "سلسلة 1";

سلسلة ستر2 = "سلسلة 2";

منطقي متساوي = ستر1.يساوي (ستر 2);

طريقة يساوي إرجاع قيمة منطقية من صحيح إذا كانت محتويات السلسلتين هي نفسها تماما ، وخطأ خلاف ذلك.

مثال:

سلسلة ستري1 = "مرحبا";

سلسلة ستر2 = "مرحبا";

منطقي متساوي = ستر1.يساوي (ستر2) ؛ / / خطأ ، لأن محتويات السلاسل تختلف في حالة الحرف "ن" و "ن"

تأخذ طريقة المساواة في الاعتبار كل من معنى الأحرف نفسها وحالتها ، لذلك سيتم اعتبار سلسلتين متساويتين فقط إذا تطابق كل حرف فيها في القيمة والحالة.

إذا كنت بحاجة إلى إجراء مقارنة غير حساسة لحالة الأحرف ، فيمكنك استخدام طريقة إيكالسينوريكاس:

سلسلة ستري1 = "مرحبا";

سلسلة ستر2 = "مرحبا";

منطقي متساوي = ستر1.مساواة الإشارة (ستر 2) ؛ / / مقارنة حقيقية غير حساسة لحالة الأحرف

طريقة مقارنة باستخدام طريقة المقارنة

تحتوي فئة السلسلة في جافا على طريقة مقارنة تسمح لك بمقارنة السلاسل بناء على معناها المعجمي. تقوم الطريقة بإرجاع عدد صحيح يوضح العلاقة بين السلسلتين.

يبدو بناء جملة طريقة المقارنة كما يلي:

كثافة العمليات مقارنة (سلسلة سلسلة 1 ، سلسلة سلسلة 2)

تقارن هذه الطريقة سلسلتين ستري1 و ستري2 وإرجاع عدد صحيح:

  1. إذا كانت قيمة العدد الصحيح الذي تم إرجاعه هي 0 ، فهذا يعني أن السلاسل تتطابق.
  2. إذا كانت قيمة العدد الصحيح الذي تم إرجاعه أقل من 0 ، فهذا يعني أن ستري1 أقل معجميا من ستري2.
  3. إذا كانت قيمة العدد الصحيح الذي تم إرجاعه أكبر من 0 ، فهذا يعني أن ستري1 أكبر معجميا من ستري2.

مثال على استخدام طريقة المقارنة:

سلسلة ستر1 = "أبك";

سلسلة ستر2 = "ديف";

كثافة العمليات النتيجة = ستر1.قارن (ستر 2);

إذا (النتيجة = = 0) {

النظام.خارج.برينتلن ("مطابقة السلاسل");

} آخر إذا (النتيجة < 0) {

النظام.خارج.برينتلن(" سلسلة ستر 1 أقل من سلسلة ستر 2");

} آخر {

النظام.خارج.برينتلن(" سلسلة ستر 1 أكبر من سلسلة ستر 2");

}

في هذا المثال ، سيتم مقارنة السلاسل "أبك" و "ديف". وبما أن " أبك "أصغر معجميا من" ديف " ، فإن طريقة المقارنة ترجع قيمة أقل من الصفر. ونتيجة لذلك ، سيتم إخراج السلسلة "سلسلة ستر 1 أصغر من سلسلة ستر 2".

طريقة المقارنة باستخدام السلسلة.طريقة القيمة

السلسلة.طريقة فالووف يسمح لك لتحويل كائن شار إلى سلسلة.

لمقارنة اثنين من سلاسل شار باستخدام السلسلة.طريقة القيمة ، اتبع الخطوات التالية:

    إذا (ستري1.يساوي (ستر2)) {

    النظام.خارج.برينتلن ("الخطوط متساوية");

    } آخر {

    النظام.خارج.برينتلن ("السلاسل ليست متساوية");

    }