Ce face strings.Count
strings.Count(s, substr) returnează numărul de apariții ale lui substr în s. Aparițiile nu se suprapun: în „aaaa”, „aa” este numărat de 2 ori, nu de 3.
Caz special: dacă substr este gol, Count returnează numărul de caractere (nu de octeți) plus 1. Pentru a număra caracterele unui text, folosește clar utf8.RuneCountInString.
Parametri
| Parametru | Descriere |
|---|---|
s |
Textul în care se numără. |
substr |
Textul numărat. |
Ce returnează
Numărul de apariții (int).
Exemple
Exemplul 1: Numărarea cuvintelor și a rândurilor
package main
import (
"fmt"
"strings"
)
func main() {
text := "Ana are mere.\nIon are pere.\nMaria are prune.\n"
fmt.Println("rânduri:", strings.Count(text, "\n"))
fmt.Println("„are”:", strings.Count(text, "are"))
fmt.Println("„aa” în „aaaa”:", strings.Count("aaaa", "aa"))
}
Rezultat
rânduri: 3
„are”: 3
„aa” în „aaaa”: 2
Exemplul 2: Count cu text gol numără caracterele
package main
import (
"fmt"
"strings"
)
func main() {
s := "Țară"
fmt.Println(len(s), "octeți")
fmt.Println(strings.Count(s, ""), "= numărul de caractere + 1")
fmt.Println(strings.Count(s, "ă"), "litera ă")
}
Rezultat
6 octeți
5 = numărul de caractere + 1
1 litera ă
Greșeli frecvente
- Numeri cuvintele cu
Count(text, " ") + 1. Spațiile duble sau de la capete dau rezultat greșit; foloseștelen(strings.Fields(text)). - Te aștepți ca
Countsă numere și aparițiile suprapuse. Nu le numără.
Comenzi înrudite
strings.Contains: Verifică dacă un text conține un alt text, unul dintre niște caractere, un caracter anume sau un caracter care respectă o condiție.strings.Index: Returnează poziția (în octeți) a primei sau ultimei apariții a unui text, octet sau caracter; -1 dacă nu există.strings.Fields: Împarte textul în cuvinte după spații (oricâte, inclusiv tab și rând nou); FieldsFunc după o condiție a ta.unicode/utf8.RuneCountInString: Numără caracterele (rune) dintr-un text UTF-8; len() numără octeții, iar ă, î, ș, ț ocupă câte 2 octeți.