Ce face strings.ToUpper
strings.ToUpper(s) transformă toate literele în majuscule, iar strings.ToLower(s) în litere mici. Funcționează pe Unicode, deci „ștefan” devine „ȘTEFAN”, iar „ÎNVĂȚĂM” devine „învățăm”. Cifrele și semnele rămân neschimbate.
Funcțiile returnează un text nou; originalul nu se schimbă. Pentru a compara două texte fără să conteze literele mari, strings.EqualFold este mai eficient decât să transformi ambele texte.
Pentru a face doar prima literă mare, Go nu are o funcție gata făcută (strings.Title este depreciată); vezi exemplul 2.
Parametri
| Parametru | Descriere |
|---|---|
s |
Textul de transformat. |
Ce returnează
Textul nou, cu literele mari, respectiv mici.
Exemple
Exemplul 1: Majuscule și litere mici
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.ToUpper("ștefan cel mare, 1457"))
fmt.Println(strings.ToLower("ÎNVĂȚĂM GO ÎN IAȘI"))
email := " Ana.Pop@Exemplu.RO "
fmt.Println(strings.ToLower(strings.TrimSpace(email)))
}
Rezultat
ȘTEFAN CEL MARE, 1457
învățăm go în iași
ana.pop@exemplu.ro
Exemplul 2: Prima literă mare
Luăm primul caracter cu utf8.DecodeRuneInString (poate avea 2 octeți, ca ș), îl facem mare și lipim restul.
package main
import (
"fmt"
"strings"
"unicode"
"unicode/utf8"
)
func primaMare(s string) string {
r, n := utf8.DecodeRuneInString(s)
if r == utf8.RuneError {
return s
}
return string(unicode.ToUpper(r)) + strings.ToLower(s[n:])
}
func main() {
for _, nume := range []string{"ștefan", "ANA", "țara", ""} {
fmt.Printf("%q\n", primaMare(nume))
}
}
Rezultat
"Ștefan"
"Ana"
"Țara"
""
Greșeli frecvente
- Faci prima literă mare cu
strings.ToUpper(s[:1]) + s[1:]. Pentru „ștefan”,s[:1]este doar primul octet din ș și textul se strică. - Uiți să salvezi rezultatul:
strings.ToUpper(s)nu modificăs.
Comenzi înrudite
strings.ToTitle: ToTitle transformă literele în forma „de titlu”; variantele Special folosesc regulile unei limbi (de exemplu turca).strings.EqualFold: Compară două texte fără să țină cont de litere mari și mici, corect și pentru diacritice.unicode.ToUpper: Transformă un singur caracter în literă mare, mică sau în forma de titlu; celelalte caractere rămân neschimbate.bytes.Contains: Variantele pentru []byte ale funcțiilor strings.Contains, strings.TrimSpace și strings.ToUpper.