strings.Trim în Go

Scoate de la capete orice caracter din setul dat: Trim la ambele capete, TrimLeft doar la început, TrimRight doar la sfârșit.

Sintaxă
func Trim(s, cutset string) string
func TrimLeft(s, cutset string) string
func TrimRight(s, cutset string) string

Ce face strings.Trim

strings.Trim(s, cutset) elimină de la începutul și sfârșitul lui s toate caracterele care apar în cutset, oricâte și în orice ordine, până dă de un caracter care nu este în set. TrimLeft lucrează doar la început, TrimRight doar la sfârșit.

Al doilea argument este un set de caractere, nu un text exact. strings.TrimRight("raport.txt", ".txt") scoate toate literele t, x și punctele de la sfârșit și dă "rapor"! Pentru a scoate un prefix sau un sufix exact folosește strings.TrimPrefix și TrimSuffix.

Parametri

Parametru Descriere
s Textul de curățat.
cutset Caracterele de eliminat de la capete (ca set, nu ca text).

Ce returnează

Textul fără caracterele din set la capete.

Exemple

Exemplul 1: Punctuație și zerouri de la capete

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Trim("!!!Salut, Ana!!!", "!"))
	fmt.Println(strings.Trim("--==Titlu==--", "-="))
	fmt.Println(strings.TrimLeft("000452", "0"))
	fmt.Println(strings.TrimRight("12.5000", "0"))
	fmt.Println(strings.TrimRight("Bună ziua...", "."))
}

Rezultat

Salut, Ana
Titlu
452
12.5
Bună ziua

Exemplul 2: Capcana: setul de caractere nu este un sufix

package main

import (
	"fmt"
	"strings"
)

func main() {
	fisier := "raport.txt"
	fmt.Println("TrimRight: ", strings.TrimRight(fisier, ".txt"))
	fmt.Println("TrimSuffix:", strings.TrimSuffix(fisier, ".txt"))
	fmt.Println("TrimLeft:  ", strings.TrimLeft("ana-maria", "an"))
}

Rezultat

TrimRight:  rapor
TrimSuffix: raport
TrimLeft:   -maria

Greșeli frecvente

  • Folosești TrimLeft/TrimRight ca să scoți un prefix sau sufix exact. Ele scot orice caracter din set și pot tăia prea mult; folosește TrimPrefix/TrimSuffix.
  • Scrii Trim(s, " ") pentru spații albe. Tab-urile și rândurile noi rămân; folosește TrimSpace.

Comenzi înrudite

  • strings.TrimSpace: Scoate spațiile albe (spații, tab, rânduri noi) de la începutul și sfârșitul textului.
  • strings.TrimPrefix: Scoate o singură dată un prefix (TrimPrefix) sau un sufix (TrimSuffix) exact, dacă textul îl are.
  • strings.TrimFunc: Scoate de la capete caracterele pentru care funcția dată returnează true (la ambele capete, la început sau la sfârșit).