CodeBlanks Logo Icon CodeBlanks

Özet - String

strconv ve strings paketlerini birleştirerek bir metin işleyici yazarsın.

String özeti

String'ler değişmez UTF-8 baytlarıdır: len bayt sayar, range ve []rune karakterle çalışır. Birleştirme: +, Sprintf, Join, döngüde strings.Builder. Dönüşüm: strconv.Atoi/Itoa/ParseFloat (hataları kontrol et). Arama ve düzenleme: strings.Contains, HasPrefix, Split, Fields, Replace, TrimSpace, EqualFold.

strings.Cut

Go 1.18 ile gelen strings.Cut bir metni ilk ayraçta ikiye böler; anahtar=değer ayrıştırmada çok kullanışlıdır:

anahtar, deger, bulundu := strings.Cut("port=8080", "=")
fmt.Println(anahtar, deger, bulundu)  // port 8080 true

Ayraç yoksa bulundu false olur ve tüm metin anahtar'a gelir.

Uygulama Ayar ayrıştırıcı

"ad=Ada;yas=36;dil=go" metnini önce strings.Split ile ; karakterinden böl, sonra her parçayı strings.Cut ile = karakterinden ayırıp bir map[string]string'e koy. m["dil"] ve len(m) yazdır.

Başlangıç kodu

main.go
package main

import (
    "fmt"
    "strings"
)

func main() {
    // buraya yaz
}

Örnek çözüm

main.go
package main

import (
    "fmt"
    "strings"
)

func main() {
    m := map[string]string{}
    for _, parca := range strings.Split("ad=Ada;yas=36;dil=go", ";") {
        if k, v, ok := strings.Cut(parca, "="); ok {
            m[k] = v
        }
    }
    fmt.Println(m["dil"], len(m))
}

Beklenen çıktı

go 3

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>strings.Split("a b", " ")</code> ile <code>strings.Fields("a b")</code> farkı nedir?

  • Split boşlukları atar
  • Split boş parça üretir ([a b] 3 eleman), Fields üretmez ([a b]) Doğru cevap
  • Aynıdır
  • Fields hata verir

Açıklama: Split her ayraçta böler; iki boşluk arasında boş string kalır. Fields ardışık boşlukları tek ayraç sayar.

2 İlk ayraçta böl

Soru
k, v, ok := strings.____("ad=Ada", "=")
Cevap
k, v, ok := strings.Cut("ad=Ada", "=")

Açıklama: Cut metni ilk ayraçta iki parçaya ayırır ve bulunup bulunmadığını söyler.

3 Grubun özeti

Kavram Anlamı
len(s) Bayt sayısı
[]rune(s) Karakterler
strconv.Atoi Metinden sayı
strings.Builder Verimli birleştirme

Başlangıç bölümündeki tüm dersler