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

استبدال سلسلة من الأحرف في سلسلة: طريقة برمجية

  • السيد علم الدّين قيس عيلان
  • المدونة

في البرمجة ، غالبا ما يكون من الضروري استبدال سلسلة معينة من الأحرف في سلسلة بأخرى. يمكن أن يكون هذا مفيدا لتصحيح الأخطاء أو معالجة البيانات أو تحويلها ، وكذلك عند كتابة الخوارزميات وتطوير التطبيقات.

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

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

مثال على استخدام طريقة الاستبدال () في بايثون:

سلسلة = " مرحبا ، العالم!"

سلسلة جديدة = سلسلة.يستعاض عن ("العالم" ، "بايثون")

طباعة (سلسلة جديدة) # مخرجات " مرحبا ، بايثون!"

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

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

نهج حسابي لاستبدال الأحرف في سلسلة

يعد استبدال سلسلة من الأحرف في سلسلة واحدة من أكثر المهام شيوعا في البرمجة. في هذه المقالة ، سننظر في نهج خوارزمي لحل هذه المشكلة.

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

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

Код на языке بيثون ، реализующий данный алгоритм, может выглядеть следующим образом:

صفر استبدال الأحرف (سلسلة):

سلسلة جديدة = ""

لشار في سلسلة:

إذا شار == " ":

سلسلة جديدة +="_"

آخر:

جديد_سلسلة + = شار

عودة جديدة_سلسلة

السلسلة القديمة = " مرحبا ، العالم!"

سلسلة جديدة = استبدال الأحرف (سلسلة قديمة)

طباعة (سلسلة جديدة) # Hello "مرحبا ، _العالم!"

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

عمليات السلسلة وتطبيقها

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

1. طرق البحث عن الأحرف واستبدالها

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

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

2. طرق لتغيير حالة سلسلة

يمكنك تغيير حالة الأحرف في السلاسل. للقيام بذلك ، يمكنك استخدام الطرق التالية:

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

3. طرق الاقتصاص والجمع بين السلاسل

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

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

4. طرق فحص السلاسل وتنسيقها

هناك أيضا طرق تسمح لك بفحص السلاسل لشروط معينة وتنسيقها وفقا لقواعد معينة:

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

هذه ليست سوى بعض من العديد من العمليات سلسلة المتاحة في لغة البرمجة. إنها تسمح لك بالعمل بكفاءة ومرونة مع البيانات النصية وإجراء التلاعبات اللازمة باستخدام السلاسل.

التعبيرات العادية لتعديل النص

التعبيرات العادية هي أداة قوية لتعديل النص. تسمح لك بالبحث عن أنماط أحرف معينة واستبدالها في سلسلة.

مزايا استخدام التعبيرات العادية:

  • المرونة: يمكنك تعيين شروط معقدة للبحث عن الأحرف واستبدالها;
  • الكفاءة: يمكن أن يكون تنفيذ العمليات باستخدام التعبيرات العادية أكثر كفاءة من استخدام طرق البحث والاستبدال التقليدية;
  • تعدد الاستخدامات: يتم دعم التعبيرات العادية من خلال مجموعة متنوعة من لغات البرمجة ومحرري النصوص.

أمثلة على استخدام التعبيرات العادية لتعديل النص:

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

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

التعقيد الحسابي لخوارزميات استبدال الأحرف

يمكن أن يكون لخوارزميات استبدال الأحرف في سلسلة صعوبات حسابية مختلفة ، اعتمادا على النهج المختار. فيما يلي مناقشة حول خوارزميات استبدال الأحرف الأكثر شيوعا وتعقيدها.

  • الخوارزمية مع مرور واحد من خلال الخط

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

  • خوارزمية باستخدام جدول التجزئة

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

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

حل برمجي لمشكلة استبدال الأحرف

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

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

  • من سلسلة;
  • سلاسل;
  • طريقة السلسلة;
  • سلاسل;
  • وظيفة السلسلة.

هناك أيضا مكتبات تجعل استبدال الأحرف في سلسلة أكثر مرونة وصعوبة. على سبيل المثال ، مكتبة التعبير العادي للغة البرمجة ج#.

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

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

سؤال وجواب

كيف يمكنني استبدال كافة الأحرف في سلسلة مع شخصيات أخرى?

لاستبدال جميع الأحرف في سلسلة بأحرف أخرى ، يمكنك استخدام وظيفة الاستبدال () في معظم لغات البرمجة.

كيف يمكنني استبدال جميع المسافات في خط مع الواصلات?

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

هل من الممكن أن تحل محل فقط حدوث الأول من حرف في سلسلة?

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

كيف يمكنني استبدال كافة الأحرف في سلسلة مع حكمه رأس المال?

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

كيف يمكنني استبدال كافة الأحرف في سلسلة مع رموزها في الجدول أسي?

لاستبدال جميع الأحرف في سلسلة مع رموزها في جدول أسي ، يمكنك استخدام حلقة تعمل من خلال كل حرف في السلسلة وظيفة للحصول على رمز الحرف في جدول أسي ، والذي يتوفر في معظم لغات البرمجة.