CodeBlanks Logo Icon CodeBlanks

strings paketi

strings paketinin yaygın fonksiyonlarını öğrenirsin.

strings paketi

strings paketi metin işlemlerinin çoğunu içerir:

s := "Go ile web geliştirme"
strings.Contains(s, "web")        // true
strings.HasPrefix(s, "Go")        // true
strings.HasSuffix(s, "me")        // true
strings.Index(s, "ile")           // 3
strings.ToUpper("go")             // "GO"
strings.Replace(s, " ", "-", -1)  // "Go-ile-web-geliştirme"
strings.Split("a,b,c", ",")       // [a b c]
strings.TrimSpace("  x  ")        // "x"

Büyük/küçük harf ve Türkçe

strings.ToUpper("istanbul") sonucu "ISTANBUL" olur; Türkçede doğrusu "İSTANBUL"dur. Türkçe kurallar için strings.ToUpperSpecial(unicode.TurkishCase, s) kullanılır. Büyük/küçük harfe duyarsız karşılaştırma için strings.EqualFold(a, b) iki string'i ayrı ayrı küçültmekten daha doğru ve hızlıdır.

Uygulama Dosya filtresi

[]string{"rapor_ocak.csv", "foto.png", "rapor_subat.csv", "not.txt"} listesinden "rapor_" ile başlayıp ".csv" ile biten dosyaları seç ve strings.Join(sonuc, ";") ile 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() {
    var sonuc []string
    for _, d := range []string{"rapor_ocak.csv", "foto.png", "rapor_subat.csv", "not.txt"} {
        if strings.HasPrefix(d, "rapor_") && strings.HasSuffix(d, ".csv") {
            sonuc = append(sonuc, d)
        }
    }
    fmt.Println(strings.Join(sonuc, ";"))
}

Beklenen çıktı

rapor_ocak.csv;rapor_subat.csv

Soru ve cevaplar

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

1 <code>strings.Index("merhaba", "z")</code> ne döndürür?

  • 0
  • 7
  • Hata
  • -1 Doğru cevap

Açıklama: Bulunamayan alt dizgede Index -1 döndürür; bulunduğunda ilk geçtiği bayt konumunu verir.

2 Önek kontrolü

Soru
if strings.____(dosya, "rapor_") {
    fmt.Println("rapor dosyası")
}
Cevap
if strings.HasPrefix(dosya, "rapor_") {
    fmt.Println("rapor dosyası")
}

Açıklama: HasPrefix metnin verilen önekle başlayıp başlamadığını söyler.

3 Fonksiyon ve sonuç

Kavram Anlamı
Contains("golang", "lan") true
Split("a-b", "-") [a b]
Repeat("ab", 2) "abab"
Count("banana", "a") 3

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