strings paketi
- Go kursu
- Başlangıç
- Ders 60/90
- 4 dk
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
package main
import (
"fmt"
"strings"
)
func main() {
// buraya yaz
}Örnek çözüm
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ü
if strings.____(dosya, "rapor_") {
fmt.Println("rapor dosyası")
}
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 |