دوال الحزمة 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- Runes مقابل Bytes
- دوال الحزمة strings
- strings.Builder
- Unicode وutf8