توفّر حزمة strings دوالً للتعامل مع السلاسل النصية.
فيما يلي بعض دوال الحزمة؛ ألقِ نظرة على التوثيق لترى البقية!
| الدور | الدالة | الغرض |
|---|---|---|
| تحويل حالة الأحرف | ToLower | تحويل سلسلة نصية إلى أحرف صغيرة |
| تحويل حالة الأحرف | ToUpper | تحويل سلسلة نصية إلى أحرف كبيرة |
| البحث | Contains | التحقق مما إذا كانت سلسلة نصية تحتوي على سلسلة نصية فرعية معيّنة |
| البحث | Count | عدّ التكرارات غير المتداخلة لسلسلة نصية فرعية |
| البحث | HasPrefix | التحقق مما إذا كانت سلسلة نصية تبدأ بسلسلة نصية فرعية معيّنة |
| البحث | HasSuffix | التحقق مما إذا كانت سلسلة نصية تنتهي بسلسلة نصية فرعية معيّنة |
| البحث | Index | تُرجع فهرس أول ظهور لسلسلة نصية فرعية، أو -1 |
| التعديل | Replace | استبدال حتى n من تكرارات سلسلة نصية فرعية |
| التعديل | ReplaceAll | استبدال كل تكرارات سلسلة نصية فرعية |
| التعديل | TrimSpace | إزالة المسافات البيضاء في البداية والنهاية |
| التقسيم أو الضم | Fields | تقسيم سلسلة نصية إلى كلمات حسب المسافات البيضاء |
| التقسيم أو الضم | FieldsSeq | الحصول على كل كلمة على حدة |
| التقسيم أو الضم | Join | ضمّ شريحة من السلاسل النصية باستخدام فاصل |
| التقسيم أو الضم | Split | تقسيم سلسلة نصية إلى أجزاء عند فاصل |
| التقسيم أو الضم | SplitSeq | الحصول على كل جزء على حدة |
import (
"fmt"
"strings"
)
// Case conversion
strings.ToLower("Gopher") // "gopher"
strings.ToUpper("Gopher") // "GOPHER"
// Searching
strings.Contains("Apple", "le") // true
strings.Index("Apple", "le") // 3
strings.Index("Apple", "xyz") // -1
strings.Count("test", "t") // 2
strings.HasPrefix("Gopher", "Go") // true
strings.HasSuffix("Gopher", "er") // true
// Modifying
strings.TrimSpace(" hello ") // "hello"
strings.Replace("aabbcc", "b", "x", 1) // "aaxbcc"
strings.ReplaceAll("aabbcc", "b", "x") // "aaxxcc"
// Splitting or Joining
strings.Fields(" a b\tc ") // []string{"a", "b", "c"}
strings.Split("a,b,c", ",") // []string{"a", "b", "c"}
strings.Join([]string{"a", "b", "c"}, ",") // "a,b,c"
// You do not need to worry about this range syntax yet.
// It is covered later in the range iteration concept.
for word := range strings.FieldsSeq(" a b\tc ") {
fmt.Println(word)
}
// Output:
// a
// b
// c
for part := range strings.SplitSeq("a,b,c", ",") {
fmt.Println(part)
}
// Output:
// a
// b
// c