Ce face strings.TrimSpace
strings.TrimSpace(s) elimină toate spațiile albe de la ambele capete: spațiu, \t, \n, \r și celelalte spații Unicode. Spațiile din interiorul textului rămân.
Este funcția pe care o aplici aproape mereu pe textul citit de la tastatură sau dintr-un fișier: rândul citit cu ReadString('\n') conține rândul nou la final, iar pe Windows și \r.
Parametri
| Parametru | Descriere |
|---|---|
s |
Textul de curățat. |
Ce returnează
Textul fără spații albe la capete.
Exemple
Exemplul 1: Curățarea datelor introduse
package main
import (
"fmt"
"strings"
)
func main() {
intrari := []string{" Ana ", "\tIași\n", "Cluj Napoca\r\n", " "}
for _, s := range intrari {
fmt.Printf("%q -> %q\n", s, strings.TrimSpace(s))
}
}
Rezultat
" Ana " -> "Ana"
"\tIași\n" -> "Iași"
"Cluj Napoca\r\n" -> "Cluj Napoca"
" " -> ""
Exemplul 2: Rând citit de la tastatură
ReadString('\n') returnează rândul împreună cu \n. Fără TrimSpace, comparația cu „da” ar fi falsă.
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
in := bufio.NewReader(os.Stdin)
rand, _ := in.ReadString('\n')
fmt.Printf("citit: %q\n", rand)
fmt.Println("fără TrimSpace:", rand == "da")
fmt.Println("cu TrimSpace:", strings.TrimSpace(rand) == "da")
}
Ce scrie utilizatorul (intrare)
da
Rezultat
citit: " da \n"
fără TrimSpace: false
cu TrimSpace: true
Greșeli frecvente
- Te aștepți ca TrimSpace să scoată și spațiile duble din mijloc. Nu le scoate; pentru asta folosește
strings.Join(strings.Fields(s), " ").
Comenzi înrudite
strings.Trim: Scoate de la capete orice caracter din setul dat: Trim la ambele capete, TrimLeft doar la început, TrimRight doar la sfârșit.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).strings.Fields: Împarte textul în cuvinte după spații (oricâte, inclusiv tab și rând nou); FieldsFunc după o condiție a ta.bytes.Contains: Variantele pentru []byte ale funcțiilor strings.Contains, strings.TrimSpace și strings.ToUpper.