String.toUpperCase în Java

Returnează un șir nou cu toate literele transformate în majuscule (toUpperCase) sau minuscule (toLowerCase).

Sintaxă
String toUpperCase()
String toUpperCase(Locale locale)   // Java 1.1
String toLowerCase()
String toLowerCase(Locale locale)

Ce face String.toUpperCase

toUpperCase() returnează o copie a șirului cu toate literele mari; toLowerCase() cu toate literele mici. Cifrele, spațiile și semnele de punctuație rămân la fel. Diacriticele românești sunt transformate corect: "ștefan" devine "ȘTEFAN".

Fără argument, metodele folosesc limba implicită a calculatorului. În unele limbi regulile diferă (în turcă, i mic devine İ cu punct). Pentru text tehnic (coduri, chei, comenzi) folosește Locale.ROOT, ca rezultatul să fie același pe orice sistem.

La majuscule, un caracter poate deveni două: ß devine SS, deci lungimea se poate schimba.

Parametri

Parametru Descriere
locale Opțional: regulile de limbă folosite (Locale.ROOT, Locale.of("ro"), Locale.of("tr")).

Ce returnează

Un șir nou (sau același, dacă nu era nimic de schimbat).

Exemple

Exemplul 1: Majuscule și minuscule

public class Main {
    public static void main(String[] args) {
        String nume = "Ștefan cel Mare";
        System.out.println(nume.toUpperCase());
        System.out.println(nume.toLowerCase());
        System.out.println(nume);
        System.out.println("Cod: ab-123".toUpperCase());
    }
}

Rezultat

ȘTEFAN CEL MARE
ștefan cel mare
Ștefan cel Mare
COD: AB-123

Exemplul 2: Prima literă mare

Combinăm substring cu toUpperCase și toLowerCase.

public class Main {
    static String capitalizeaza(String s) {
        if (s.isEmpty()) {
            return s;
        }
        return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();
    }

    public static void main(String[] args) {
        System.out.println(capitalizeaza("iAȘI"));
        System.out.println(capitalizeaza("ștefănești"));
        System.out.println(capitalizeaza(""));
    }
}

Rezultat

Iași
Ștefănești

Exemplul 3: Limba contează: turcă vs Locale.ROOT

import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        String cuvant = "titlu";
        System.out.println(cuvant.toUpperCase(Locale.ROOT));
        System.out.println(cuvant.toUpperCase(Locale.of("tr")));
        System.out.println("Straße".toUpperCase(Locale.ROOT));
        System.out.println("Straße".toUpperCase(Locale.ROOT).length());
    }
}

Rezultat

TITLU
TİTLU
STRASSE
7

Greșeli frecvente

  • Apelezi s.toUpperCase(); și afișezi tot s. Metoda returnează un șir nou: s = s.toUpperCase();.
  • Folosești toLowerCase() fără limbă pentru chei sau comenzi ("TITLE".toLowerCase()). Pe un sistem în turcă rezultatul este "tıtle". Folosește Locale.ROOT.
  • Compari două texte transformându-le pe amândouă cu toLowerCase(). Merge, dar equalsIgnoreCase este mai simplu.

Comenzi înrudite

  • Character.toUpperCase: Transformă un singur caracter în literă mare sau în literă mică; celelalte caractere rămân la fel.
  • String.equals: Verifică dacă două șiruri au exact același text; equalsIgnoreCase și equalsFoldCase ignoră literele mari/mici.
  • String.compareTo: Compară două șiruri în ordine lexicografică: rezultat negativ, zero sau pozitiv; variante fără litere mari/mici.