Ce face StringBuilder.charAt
charAt(index) funcționează la fel ca la String.charAt: poziția începe de la 0, iar o poziție în afara textului aruncă StringIndexOutOfBoundsException.
setCharAt(index, c) schimbă un singur caracter, fără să mute nimic. Lungimea rămâne aceeași. Este ceea ce lipsește la String, unde nu poți modifica o literă.
Parametri
| Parametru | Descriere |
|---|---|
index |
Poziția caracterului, de la 0 la length() - 1. |
c |
Pentru setCharAt: noul caracter. |
Ce returnează
charAt: caracterul de la poziție. setCharAt nu returnează nimic (void).
Exemple
Exemplul 1: Prima literă mare
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("timișoara");
char prima = sb.charAt(0);
sb.setCharAt(0, Character.toUpperCase(prima));
System.out.println(sb);
}
}
Rezultat
Timișoara
Exemplul 2: Ascunderea unui număr de telefon
Înlocuim cifrele din mijloc cu *; lungimea textului nu se schimbă.
public class Main {
public static void main(String[] args) {
StringBuilder tel = new StringBuilder("0745123456");
for (int i = 3; i < tel.length() - 3; i++) {
tel.setCharAt(i, '*');
}
System.out.println(tel + " (" + tel.length() + " caractere)");
}
}
Rezultat
074****456 (10 caractere)
Exemplul 3: Înlocuirea diacriticelor cu sedilă
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Bra\u015fov \u0163ara");
for (int i = 0; i < sb.length(); i++) {
char c = sb.charAt(i);
if (c == '\u015f') {
sb.setCharAt(i, 'ș');
} else if (c == '\u0163') {
sb.setCharAt(i, 'ț');
}
}
System.out.println(sb);
}
}
Rezultat
Brașov țara
Greșeli frecvente
- Încerci
sb.charAt(0) = 'A': nu se poate atribui unui apel de metodă. FoloseștesetCharAt. - Vrei să înlocuiești un caracter cu mai multe (de exemplu
șcush) prinsetCharAt: nu se poate, ai nevoie dereplace(start, end, text).
Comenzi înrudite
StringBuilder.replace: replace() înlocuiește caracterele dintre două poziții cu un text nou; indexOf() găsește poziția unui subșir.String.charAt: Returnează caracterul (char) de la poziția dată; prima poziție este 0, ultima este length() – 1.StringBuilder: Un text care se poate modifica pe loc: adaugi, inserezi și ștergi fără să creezi un șir nou la fiecare pas.Character.toUpperCase: Transformă un singur caracter în literă mare sau în literă mică; celelalte caractere rămân la fel.