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 tots. 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șteLocale.ROOT. - Compari două texte transformându-le pe amândouă cu
toLowerCase(). Merge, darequalsIgnoreCaseeste 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.