unicode.IsUpper în Go

Verifică dacă un caracter este literă mare (IsUpper) sau literă mică (IsLower).

Sintaxă
func IsUpper(r rune) bool
func IsLower(r rune) bool

Ce face unicode.IsUpper

unicode.IsUpper(r) returnează true pentru literele mari (A, Ș, Ț, Ж), iar unicode.IsLower(r) pentru literele mici. Cifrele, spațiile și semnele nu sunt nici mari, nici mici: ambele funcții returnează false.

Sunt utile pentru verificarea parolelor, pentru detectarea textelor scrise numai cu majuscule sau pentru împărțirea numelor scrise camelCase.

Parametri

Parametru Descriere
r Caracterul verificat.

Ce returnează

true sau false.

Exemple

Exemplul 1: Verificarea unei parole

package main

import (
	"fmt"
	"unicode"
)

func main() {
	for _, parola := range []string{"Șoarece2026", "soarece", "SOARECE"} {
		mare, mica := false, false
		for _, r := range parola {
			if unicode.IsUpper(r) {
				mare = true
			}
			if unicode.IsLower(r) {
				mica = true
			}
		}
		fmt.Printf("%-12s majusculă: %-5t literă mică: %t\n", parola, mare, mica)
	}
	fmt.Println(unicode.IsUpper('7'), unicode.IsLower('7'))
}

Rezultat

Șoarece2026  majusculă: true  literă mică: true
soarece      majusculă: false literă mică: true
SOARECE      majusculă: true  literă mică: false
false false

Exemplul 2: Împărțirea unui nume camelCase

package main

import (
	"fmt"
	"strings"
	"unicode"
)

func main() {
	nume := "numeComplet"
	var sb strings.Builder
	for _, r := range nume {
		if unicode.IsUpper(r) {
			sb.WriteRune('_')
			r = unicode.ToLower(r)
		}
		sb.WriteRune(r)
	}
	fmt.Println(sb.String())
}

Rezultat

nume_complet

Greșeli frecvente

  • Crezi că !IsUpper(r) înseamnă literă mică. Cifrele și semnele nu sunt mari, dar nici mici; folosește IsLower.

Comenzi înrudite

  • unicode.IsLetter: Verifică tipul unui caracter: literă, cifră, număr, spațiu alb sau semn de punctuație, după regulile Unicode.
  • unicode.ToUpper: Transformă un singur caracter în literă mare, mică sau în forma de titlu; celelalte caractere rămân neschimbate.
  • strings.ToUpper: Returnează textul scris cu litere mari (ToUpper) sau mici (ToLower), inclusiv diacriticele.