Fungsi string
Olah teks dengan paket strings.
Pahami konsepnya
Paket strings menyediakan peralatan lengkap untuk teks. Pemeriksaan: Contains, HasPrefix, HasSuffix, EqualFold (perbandingan tak pedulikan kapital). Pemotongan: Split (per pemisah), Fields (per spasi, pembersih ganda), TrimSpace, Trim/TrimPrefix. Penggabungan dan pengubahan: Join, Replace (dengan n untuk membatasi), ToUpper, ToLower, Repeat.
Pencarian posisi: Index mengembalikan posisi pertama atau -1, Count menghitung kemunculan, Cut membelah sekali menjadi before/after/Found — pola baru yang ramping untuk parsing pas seperti "key=value".
Untuk merangkai banyak potongan secara efisien ada strings.Builder: menambah lewat .WriteString lalu .String() di akhir. Perulangan s += potongan membuat salinan berulang (kompleksitas kuadratik); Builder menyimpannya dalam buffer yang tumbuh — standar untuk membangun teks panjang.
Coba contoh kode
package main
import (
"fmt"
"strings"
)
func main() {
teks := " Go itu seru dan Go itu cepat "
bersih := strings.TrimSpace(teks)
kata := strings.Fields(bersih)
fmt.Println(kata, len(kata))
fmt.Println(strings.ReplaceAll(bersih, "Go", "Golang"))
fmt.Println(strings.ToUpper(bersih))
}TrimSpace memangkas spasi dua sisi; Fields memecah per spasi (berapapun jumlahnya) langsung menjadi []string bersih — pasangan pembuka hampir setiap olah teks. ReplaceAll mengganti semua kemunculan; versi Replace(s, lama, baru, n) membatasi n kali bila perlu.
Cut dan Builder
func main() {
before, after, found := strings.Cut("user=andi", "=")
fmt.Println(before, after, found) // user andi true
var b strings.Builder
for i := 1; i <= 3; i++ {
fmt.Fprintf(&b, "baris %d\n", i)
}
fmt.Print(b.String())
}Cut membelah sekali pada pemisah pertama dan melaporkan keberhasilannya tanpa error — lebih bersih daripada kombinasi Index + slicing untuk pasangan key=value. Builder menerima fmt.Fprintf langsung (ia adalah io.Writer) lalu menyerahkan hasil utuhnya lewat .String().
Latihan singkat
Uji: hitung kata dan ganti `seru` menjadi `mantap` — harus dua baris persis: `7` lalu `Go itu mantap dan Go itu cepat`.