في باسكال ، يمكنك تحديد جزء من سلسلة ( سلسلة فرعية em> ). لهذا ، يتم استخدام عملية النسخ.
الشكل العام للعملية هو كما يلي:
<قبل>
s1: = نسخ (s ، فهرس ، عدد) ؛ pre>
يأخذ هذا الأمر شريحة من السلسلة s ، بدءًا من الحرف في الفهرس index of length count.
على سبيل المثال،
<قبل>
s1: = نسخ (ق ، 3 ، 5) ؛
إذا كان الفهرس أكبر من طول السلسلة ، فسيتم إرجاع سلسلة فارغة. إذا كانت أحرف العد ، بدءًا من الفهرس ، أطول من طول السلسلة ، فسيتم إرجاع السلسلة ، بدءًا من الفهرس والنهاية.
وإليك مدى سهولة عكس السلسلة:
<قبل>
ق: = & # 39 ؛ 0123456789 & # 39 ؛؛
s1: = reverseString (s) ؛ // s1 = & # 39 ؛ 0123 & # 39 ؛
|
لحذف جزء من سلسلة ، تحتاج إلى استخدام طريقة delete (s ، firstIndex ، count): فهي تزيل عدد strong> أحرف من السلسلة s ، بدءًا من الفهرس الأول strong>
<قبل>
ق: = & # 39 ؛ 0123456789 & # 39 ؛؛
حذف (ق ، 4 ، 6) ؛ // s1 = "0129"
لنسخ جزء من سلسلة ، يمكنك استخدام طريقة copy (s ، index ، count) - ستعيد جزءًا من السلسلة s ، بدءًا من الفهرس index قوي> وطول العد strong>
على & nbsp؛
<قبل>
ق: = & # 39 ؛ 123456789 & # 39 ؛؛
s1: = نسخ (ق ، 3 ، 4) ؛ // s1 = & # 39 ؛ 3456 & # 39 ؛
|
باسكال لديها العديد من الإجراءات للعمل مع السلاسل. & nbsp؛ يُطلق على العديد منها استخدام التدوين النقطي ويُطلق عليها طرق strong> . يمكن العثور على قائمة كاملة بأساليب معالجة السلاسل على الإنترنت. & nbsp؛
دعنا نتعرف على بعض منهم.
<قبل>
s: = & # 39 ؛ aAbBcC & # 39 ؛
sUp: = الأحرف الكبيرة ؛ // sUp = & quot؛ AABBCC & quot؛ - طريقة تحول كل حرف في سلسلة نصية إلى أحرف كبيرة
sLow: = الأحرف الصغيرة // sLow = & quot؛ aabbcc & quot؛ - طريقة تحول كل حرف في سلسلة إلى أحرف صغيرة
الطريقة دائما مكتوبة بين قوسين. هناك بعض المعاملات داخل الأقواس ، إذا لزم الأمر.
طريقة أخرى مفيدة & nbsp؛ - val (s، v، ind) - طريقة للتحقق مما إذا كانت جميع أحرف السلسلة أرقامًا. s - سلسلة المصدر ، v تحتوي على رقم إذا كانت سلسلة المصدر رقمًا ، و 0 بخلاف ذلك ، تحتوي ind على رقم أول < strong> index s وهو ليس رقمًا ، أو 0 إذا كانت s عبارة عن رقم.
<قبل>
ق: = & # 39 ؛ ab1c & # 39 ؛
val (s ، v ، ind) ؛
writeln (v ، & # 39 ؛ & # 39 ؛ ، الهند) ؛ // 0 3
ق: = & # 39 ؛ 123 & # 39 ؛؛
val (s ، v ، ind) ؛
w (vriteln، & # 39؛ & # 39 ؛، ind) ؛ // 123 0
طريقة القطع المفيدة & nbsp ؛ - تسمح لك بإزالة المسافات في بداية ونهاية السلسلة
<قبل>
ق: = & # 39 ؛ أب 1 ج & # 39 ؛؛
طباعة (& # 39 ؛ ق = & # 39 ؛ ، تقليم (ق)) ؛ // ق = أب 1 ج
|
للبحث داخل سلسلة في باسكال ، استخدم طريقة pos () .
تقوم بإرجاع فهرس التكرار الأول للسلسلة الفرعية في السلسلة:
pos (originalString، smallString) - يبدو في & nbsp؛ originalString & nbsp؛ smallString
عندما لا يتم العثور على السلسلة الفرعية ، ترجع الطريقة 0: p>
<قبل>
ترحيب: = & # 39 ؛ أهلاً بالعالم! وداعا العالم! & # 39 ؛؛
الفهرس: = pos (مرحبًا ، & # 39 ؛ WOR & # 39 ؛) ؛
writeln (فهرس) ؛ // 7
الفهرس: = pos (مرحبًا ، & # 39 ؛ sun & # 39 ؛) ؛
writeln (فهرس) ؛ // 0
الرجاء ملاحظة: strong> أن هذه الطرق لا تبحث عن عدد مرات الحدوث ، ولكنها تحدد فقط ما إذا كان هناك سلسلة فرعية من هذا القبيل في السلسلة أم لا .
|
في باسكال ، لاستبدال سلسلة فرعية بأخرى في سلسلة ، استخدم stringReplace () : & nbsp؛ طريقة
stringReplace (original، old، new، flag) : تم استبدال originalString & nbsp؛ & nbsp؛ substring old في new ، & nbsp؛ flag & nbsp؛ هي إحدى قيم & nbsp؛ rfReplaceAll & nbsp؛ أو & nbsp؛ rfIgnoreCase، & nbsp؛ مكتوب بين قوسين مربعين. في الحالة الأولى ، كل تكرارات & nbsp؛ old & nbsp؛ إلى السلسلة الأصلية ، strong> في الحالة الثانية ، الأولى فقط. p>
مثال على استبدال سلسلة باسكال:
على & nbsp؛
<قبل>
الهاتف = & # 39 ؛ + 1-234-567-89-10 & # 39 ؛
// يتم تغيير الواصلات إلى مسافات
edited_phone: = stringreplace (phone ، - & # 39 ؛، & # 39 ؛ & # 39 ؛، [rfReplaceAll]) ؛
writeln (edited_phone) ؛ // +1234567 89 10
// يتم إزالة الواصلات
edited_phone: = stringreplace (phone ، - & # 39 ؛، & # 39 ؛ & # 39 ؛، [rfReplaceAll]) ؛
writeln (edited_phone) ؛ // +12345678910
// فقط التغييرات الأولى للشرطة
edited_phone: = replace (هاتف ، & # 39 ؛ - & # 39 ؛، & # 39 ؛ & # 39 ؛، [rfIgnoreCase]) ؛
writeln (edited_phone) ؛ // + 1234-567-89-10
|