0Pricing
Go Academy · درس

دوال الحزمة strings

قسّم السلاسل النصية وادمجها واقطع أطرافها

دوال الحزمة strings درس مجاني في Go Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Go Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Go Academy 4 دروس في المجموع.

حزمة strings

تمنحك حزمة المكتبة القياسية strings دوال جاهزة للعمل مع النصوص: البحث والتقسيم والضم والتقليم وتغيير حالة الأحرف.

استوردها باستخدام import "strings".

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.ToUpper("hello"))
}

Contains وHasPrefix

تحقق من السلاسل الفرعية من دون كتابة حلقات:

  • تُرجع strings.Contains(s, sub) ما إذا كانت sub موجودة.
  • تتحقق strings.HasPrefix وstrings.HasSuffix من البداية والنهاية.
package main

import (
    "fmt"
    "strings"
)

func main() {
    s := "golang"
    fmt.Println(strings.Contains(s, "lan"))
    fmt.Println(strings.HasPrefix(s, "go"))
}

العثور على موضع

تعيد strings.Index(s, sub) فهرس البايت لأول تطابق، أو -1 إذا لم يُعثر عليه.

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.Index("chocolate", "col"))
    fmt.Println(strings.Index("chocolate", "xyz"))
}

تقسيم سلسلة نصية

تقسّم strings.Split(s, sep) سلسلة نصية إلى شريحة باستخدام فاصل.

وهي مثالية لتحليل البيانات بتنسيق يشبه CSV.

package main

import (
    "fmt"
    "strings"
)

func main() {
    parts := strings.Split("a,b,c", ",")
    fmt.Println(parts)
    fmt.Println(len(parts))
}

التقسيم حسب المسافات البيضاء

تقسّم strings.Fields(s) النص عند كل تسلسل من المسافات البيضاء، وتحذف الأجزاء الفارغة. وهي مثالية لعدّ الكلمات.

package main

import (
    "fmt"
    "strings"
)

func main() {
    words := strings.Fields("  the   quick brown  fox ")
    fmt.Println(words)
    fmt.Println(len(words))
}

ضم الشرائح

تُعد strings.Join(slice, sep) عكس Split؛ فهي تصل عناصر الشريحة معًا باستخدام فاصل.

package main

import (
    "fmt"
    "strings"
)

func main() {
    parts := []string{"2026", "05", "30"}
    fmt.Println(strings.Join(parts, "-"))
}

تقليم المسافات

تزيل strings.TrimSpace(s) المسافات البيضاء في بداية النص ونهايته، ولذلك فهي مفيدة جدًا لتنظيف إدخال المستخدم.

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.TrimSpace("   hi there   ") + "!")
}

تقليم أحرف محددة

تزيل strings.Trim(s, cutset) أيًّا من الأحرف المحددة من الطرفين. أما TrimPrefix وTrimSuffix فتزيلان سلاسل نصية مطابقة تمامًا.

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.Trim("***name***", "*"))
    fmt.Println(strings.TrimSuffix("file.txt", ".txt"))
}

استبدال النص

يستبدل strings.ReplaceAll(s, old, new) كل تكرار. استخدم strings.Replace(s, old, new, n) لحصر الاستبدال في أول n تطابقات.

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.ReplaceAll("a-b-c", "-", "+"))
    fmt.Println(strings.Replace("a-b-c", "-", "+", 1))
}

التكرار والعدّ

إليك دالتين إضافيتين مفيدتين:

  • تنشئ strings.Repeat(s, n) سلسلة نصية مكررة.
  • تحسب strings.Count(s, sub) عدد التكرارات غير المتداخلة.
package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.Repeat("ab", 3))
    fmt.Println(strings.Count("banana", "a"))
}

دمج الدوال

تتعاون هذه الدوال جيدًا. نُقلّم هنا سلسلة نصية غير مرتبة، ثم نقسمها ونعيد ضمها في قائمة نظيفة مفصولة بفواصل.

package main

import (
    "fmt"
    "strings"
)

func main() {
    raw := "  go  rust  zig  "
    words := strings.Fields(raw)
    fmt.Println(strings.Join(words, ", "))
}

تحقق سريع

اختر الدالة التي تضم شريحة في سلسلة نصية واحدة.

مراجعة: دوال strings

أصبح لديك الآن مجموعة أدوات للعمل مع النصوص:

  • البحث: Contains وIndex وHasPrefix.
  • التقسيم: Split وFields.
  • الدمج: Join وRepeat.
  • التنظيف: TrimSpace وTrim وReplaceAll.
package main

import (
    "fmt"
    "strings"
)

func main() {
    s := "  Hello, Go World  "
    fmt.Println(strings.ToLower(strings.TrimSpace(s)))
}

الأسئلة الشائعة

هل درس «دوال الحزمة strings» مجاني؟

نعم — نص درس «دوال الحزمة strings» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Go Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Go Academy 4 دروس في المجموع.

ماذا ستتعلم في «دوال الحزمة strings»؟

قسّم السلاسل النصية وادمجها واقطع أطرافها تتمرن على Go Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Go Academy؟

لا تُشترط خبرة سابقة. Go Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «دوال الحزمة strings»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Go Academy هذا؟

نعم. كل درس في Go Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. Runes مقابل Bytes
  2. دوال الحزمة strings
  3. strings.Builder
  4. Unicode وutf8
← العودة إلى Go Academy