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

يعد التلاعب بالسلسلة أمرًا أساسيًا في تطوير البرامج ؛ تقدم معظم لغات البرمجة نوع سلسلة ، بعد كل شيء. السلسلة عبارة عن سلسلة من الأحرف: أحرف وأرقام ورموز.

يعد التلاعب بالسلسلة مفيدًا للعديد من التطبيقات ، من معالجة النصوص وتحليل البيانات إلى تطوير الويب. عمليات معالجة السلاسل الشائعة هي التسلسل والتحقق من صحة البيانات والاستخراج والتنسيق. يوفر Go حزمة معالجة سلسلة تسمى "سلاسل" في المكتبة القياسية.

حزمة الأوتار

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

يمكنك استيراد حزمة السلاسل بتحديد اسم الحزمة في قائمة الواردات الخاصة بك.

يستورد"سلاسل"

البحث عن السلاسل الفرعية

ال سلاسل توفر الحزمة ثلاث وظائف للبحث عن السلاسل الفرعية: ملف يتضمن وظيفة يحتوي على أي وظيفة ، و يحتوي على رون وظيفة.

ال يتضمن تتحقق الدالة مما إذا كانت السلسلة المحددة تحتوي على السلسلة الفرعية. ال

instagram viewer
يحتوي على أي تتحقق الدالة مما إذا كانت السلسلة تحتوي على أي أحرف في السلسلة الفرعية أم لا يحتوي على رون تتحقق الوظيفة مما إذا كانت السلسلة تحتوي على حرف رون (حرف Unicode).

يستورد (
"FMT"
"سلاسل"
)

funcرئيسي() {
سلسلة: = "مرحبا بالعالم!"
السلسلة الفرعية: = "عالم"
الشخصيات: = "aeiou"
رون: = "س"

FMT. Println (سلاسل. يحتوي على (سلسلة ، سلسلة فرعية)) // الإخراج: صحيح
FMT. Println (سلاسل. يحتوي على أي (سلسلة ، أحرف)) // الإخراج: صحيح
FMT. Println (سلاسل. يحتوي على Run (aString ، aRune)) // الإخراج: صحيح
}

يمكنك استرداد فهرس سلسلة فرعية بامتداد فِهرِس, الفهرس, الفهرس بايت، و الفهرس المهام. ال فِهرِس تقوم الدالة بإرجاع فهرس سلسلة فرعية ، إذا حدثت في سلسلة أخرى معينة. ال الفهرس تقوم الدالة بإرجاع فهرس أول مثيل لـ نقطة رمز Unicode أو -1 في حالة عدم وجود أي من الشخصيات.

يستورد (
"FMT"
"سلاسل"
)

funcرئيسي() {
سلسلة: = "مرحبا بالعالم!"
السلسلة الفرعية: = "عالم"
حرف: = "wrld"
حرف البايت: = بايت("س")
رون: = رون("س")

FMT. Println (سلاسل. الفهرس (سلسلة ، سلسلة فرعية)) // الإخراج: 7
FMT. Println (سلاسل. IndexAny (سلسلة ، أحرف)) // الإخراج: 7
FMT. Println (سلاسل. IndexByte (سلسلة ، حرف بايت)) // الإخراج: 4

f: = funcرون)منطقي {
يعود ص == "س"
}

FMT. Println (سلاسل. IndexFunc (aString، f)) // الإخراج: 4
FMT. Println (سلاسل. IndexRune (aString ، aRune)) // الإخراج: 4
}

الفهرس بايت إرجاع فهرس المثيل الأول من حرف البايت في السلسلة أو -1. ال الفهرس تقوم الدالة بإرجاع الفهرس إلى سلسلة نقطة Unicode الأولى التي تفي بوظيفة معينة. وأخيرا، فإن IndexRune تُرجع الدالة فهرس أول مثيل لنقطة رمز Unicode للرون.

استبدال السلاسل الفرعية في Go

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

يستورد (
"FMT"
"سلاسل"
)

funcرئيسي() {
السلسلة: = "هذه سلسلة اختبار يجب تعديلها."
FMT. Println (سلاسل. استبدل (theString ، "يكون", "كان", 1))
FMT. Println (سلاسل. استبدل (theString ، "يكون", "كان", -1))
FMT. Println (سلاسل. ReplaceAll (theString ، "يكون", "كان"))
}

لاحظ أنه يمكنك استخدام كل من Replace و ReplaceAll لاستبدال كل تكرار داخل السلسلة.

انقسام وربط الأوتار

ال سلاسل تحتوي الحزمة على ملف ينقسم, انقسام بعد, SplitAfterN ، و سبليت وظائف لتقسيم السلاسل التي تعيد شريحة من السلاسل.

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

يستورد (
"FMT"
"سلاسل"
)

funcرئيسي() {
ق: = "هذه سلسلة اختبار يجب تقسيمها."

FMT. Println (سلاسل. انقسام (ق ، " "))
FMT. Println (سلاسل. انقسام بعد (ق ، " "))
FMT. Println (سلاسل. SplitAfterN (s ، " ", 3))
FMT. Println (سلاسل. SplitN (s ، " ", 3))
}

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

يمكنك ضم سلاسل مع ينضم وظيفة من سلاسل طَرد. ال ينضم تأخذ الوظيفة شريحة ومحددًا.

يستورد (
"FMT"
"سلاسل"
)

funcرئيسي() {
FMT. Println (سلاسل. ينضم([]خيط{"مرحبًا", "عالم"}, ":"))
// الإخراج: "Hello: World"
}

معالجة حالة السلسلة

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

يستورد (
"FMT"
"سلاسل"
)

funcرئيسي() {
ق: = "هذه سلسلة اختبار."

FMT. Println (سلاسل. أقل (ق)) // هذه سلسلة اختبار.
FMT. Println (سلاسل. توبر (ق)) // هذا اختبار سلسلة.
FMT. Println (سلاسل. العنوان (العناوين) // هذا اختبار سلسلة.
}

سلسلة البناء في Go

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

يستورد (
"FMT"
"سلاسل"
)

funcرئيسي() {
فار سلاسل ب. باني

// اكتب بعض السلاسل للمُنشئ
ب. سلسلة الكتابة ("هذا ")
ب. سلسلة الكتابة ("يكون ")
ب. سلسلة الكتابة ("أ ")
ب. سلسلة الكتابة ("امتحان ")
ب. سلسلة الكتابة ("خيط.")

// احصل على طول المنشئ
FMT. برنتلن (ب. لين ()

// تحويل المنشئ إلى سلسلة
str: = ب. خيط()
FMT. Println (str)

// إعادة تعيين المنشئ
ب. إعادة ضبط()

// اكتب المزيد من السلاسل للمُنشئ
ب. سلسلة الكتابة ("هذا ")
ب. سلسلة الكتابة ("يكون ")
ب. سلسلة الكتابة ("آخر ")
ب. سلسلة الكتابة ("امتحان ")
ب. سلسلة الكتابة ("خيط.")

// احصل على قدرة المنشئ
FMT. برنتلن (ب. قبعة())

// تحويل المنشئ إلى سلسلة مرة أخرى
str = ب. خيط()
FMT. Println (str)
}

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

ال خيط طريقة تحويل محتوى المنشئ إلى سلسلة ، و إعادة ضبط طريقة إعادة تعيين المنشئ لبناء سلسلة إضافية.

ال قبعة طريقة إرجاع قدرة المنشئ. هذه هي المساحة الحالية التي خصصها Go للسلسلة.

تشذيب السلسلة في Go

ال سلاسل توفر الحزمة أيضًا وظائف لتقليم السلاسل في ملف تقليم, اقتطاع اليسار, TrimPrefix, تقليم لليمين, TrimSpace ، و تريم سافيكس المهام.

يستورد (
"سلاسل"
"FMT"
)

funcرئيسي() {
// السلسلة الكاملة
ق: = "مرحبا بالعالم!"

// عنصر التقليم
البادئة: = "مرحبًا"
اللاحقة: = "عالم!"

// يقص سلسلة من خلال مجموعة القطع المحددة
FMT. Println (سلاسل. تقليم (ق ، "!"))

// تقطع بمسافات في بداية السلسلة ونهايتها
FMT. Println (سلاسل. TrimSpace (s))

// يقطع من السلسلة اليسرى بواسطة مجموعة القطع المحددة
FMT. Println (سلاسل. TrimLeft (s ، "مرحبًا"))

// يقطع من السلسلة الصحيحة بواسطة مجموعة القطع المحددة
FMT. Println (سلاسل. TrimRight (ق ، "عالم!"))

// يقطع بادئة
FMT. Println (سلاسل. TrimPrefix (s ، بادئة))

// يقطع لاحقة معينة
FMT. Println (سلاسل. TrimSuffix (s ، لاحقة))
}

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

يمكنك تنسيق السلاسل في Go

توفر مكتبة Go القياسية أيضًا حزمة fmt لتنسيق السلسلة. تستخدم حزمة fmt أفعال تنسيق بنمط C لتنسيق سلسلة فعال في Go.