جداکردن رشته ها

اگر بخواهید یک رشته را به چند رشته تکه تکه کنید، می‌توانید از متد ()Split استفاده نمایید. اجازه دهید نگاهی به سربارگذاری های مختلف این متد بیندازیم. متد ()Split، یک Slice از رشته‌ها را بر می‌گرداند، که هر عنصر از این Slice، شامل یک زیر رشته است. این متد، یک رشته قبول می کند و بر اساس آن تشخیص می‌دهد که رشته باید در چه جایی به قسمت‌های مختلف تقسیم شود.

package main

import (
    "fmt"
    "strings"
)

func main(){
    message := "The quick brown fox jumps over the lazy dog."
    substrings := strings.Split(message, " ")

    for _,value := range substrings {
	    fmt.Println(value)
    }
}
The
quick
brown
fox
jumps
over
the
lazy
dog.

در مثال بالا از کاراکتر فاصله (‘ ‘) برای جدا کردن کلمات در رشته بالا استفاده کرده‌ایم. چون دو کلمه متوالی به وسیله فاصله از هم جدا می‌شوند. کلمات در substrings ذخیره می‌شوند. سپس با استفاده از دستور for آن‌ها را در خطوط جداگانه چاپ می‌کنیم. می‌توان تعداد زیر رشته‌های برگشتی را به وسیله یک متد دیگر با نام ()SplitN محدود کرد. یعنی مشخص کنیم که یک رشته به چه تعداد زیر رشته تقسیم شود:

package main

import (
    "fmt"
    "strings"
)

func main() {
    message := "The quick brown fox jumps over the lazy dog."
    substrings := strings.SplitN(message, " ", 3)
    for _, key := range fruits {
        fmt.Println(key)
    }
}
The
quick
brown fox jumps over the lazy dog.

همانطور که در مثال بالا مشاهده می‌کنید، سومین آرگومان برای تشخیص تعداد زیر رشته‌ها به کار می‌رود. خروجی نشان می‌دهد که دو کلمه اول از رشته جدا شده‌اند و مابقی رشته در عنصر آخر Slice ذخیره می‌شود. یک روش دیگر برای تکه کردن رشته استفاده از متد SplitAfter می باشد. به کد زیر توجه کنید:

package main

import (
    "fmt"
    "strings"
)

func main(){
    message := "The.quick.brown.fox.jumps.over.the.lazy.dog"
    substrings := strings.SplitAfter(message, ".")

    for _,value := range substrings {
        fmt.Println(value)
    }
}
The.
quick.
brown.
fox.
jumps.
over.
the.
lazy.
dog

با توجه به خروجی برنامه احتمالا متوجه کارکرد این متد شده اید. در کد strings.SplitAfter(message, “.”) گفته ایم که رشته را بعد از کاراکتر نقطه تکه تکه کن. یعنی هر جایی که برنامه با علامت نقطه مواجه می شود، تا آن قسمت را جدا و در Slice می ریزد.