
Ce înseamnă concatenarea într-un limbaj de programare? Exact ca în limba română, înseamnă a uni ceva lângă altceva…
Concatenarea se referă în mod special la unirea șirurilor de caractere.
Îți voi prezenta 2 tipuri de concatenare în limbajul Java, unul simplu, la îndemâna oricui, și altul cu ajutorul unei funcții.
Concatenarea cu + 🔗
Cea mai simplă formă de concatenare a șirurilor este prin folosirea simbolului plus (+). Pur și simplu folosești semnul + într-o declarație (linie de cod) pentru unirea valorilor sau variabilelor.
Exemple:
String a = "abc"; String b = "xyz"; String c = a + b; System.out.println(c); // afișează șirul „abcxyz”
String d = "alfa " + "beta"; System.out.println(d); // afișează șirul „alfa beta”
System.out.println("Acesta " + "este " + "un " + "șir!");
/*
afișează textul:
Acesta este un șir!
*/
Ce am făcut în exemplele anterioare? Practic am adunat (alipit) variabilele între ele ca și cum pui un nou vagon la un tren. Unde îl pui? În spate… Așa se face și când folosești funcția concat(…).
Concatenarea cu funcția concat(…) 🔗
E foarte ușor și intuitiv să ții minte faptul că funcția concat(…) vine de la concatenare (concatenation). Trebuie doar să ai 2 șiruri de caractere și să te hotărăști cum să faci unirea (care să fie unit în spatele celuilalt).
Exemple:
String m = "despre "; String n = "tot"; String t = m.concat(n); System.out.println(t); // afișează șirul „despre tot”
String x = "100"; String y = "200 "; String z = "300 ; System.out.println(c.concat(b.concat(a))); // afișează șirul „300 200 100”
Nu te panica de ce am scris la ultimul exemplu! Este foarte corect și destul de interesant dacă poți înțelege cum funcționează concatenarea. Hai să-ți explic un pic… Pe linia cu metoda println(…) afișez variabila c, căruia îi atribui funcția de concatenare a concatenării variabilei a la variabila b. Adică, pentru început se formează șirul „200 100” (din b.concat(a)), apoi se lipește de variabila c și devine „300 200 100”.
Sfat: poți să faci abstracție de faptul că numele variabilelor este format dintr-un singur caracter. Când vei lucra „pe pielea ta”, ai să vezi cât de nociv este să ai variabile dintr-un singur caracter (cum ar fi a, b, c etc.). Aici am scris așa scurt doar pentru exemplu. Îți recomand să citești articolul „Convenții de scriere a variabilelor în Java”.
Mai există și alte metode de concatenare, dar deja ajungem la niște clase destul de complexe. Pentru început, e bine să rămânem cu noțiunea asta de concatenare în Java.
Hai să-ți dau și ceva bonus, dacă tot nu-ți ofer toate tipurile de concatenare…
În anumite cazuri (în funcție de context), poți să folosești operatorul de atribuire prescurtat, adică să nu mai scrii „a = a + b”, ci „a += b”, dacă vrei să-l unești pe a cu b.
Exemplu:
String a = "100 "; String b = "200 "; a += b; System.out.println(a); // afișează șirul „100 200” System.out.println(b); // b rămâne cu valoarea „200”
Poți să folosești numere în declarația de cod (sau chiar la inițializarea variabilei) fără a le pune între ghilimele, iar dacă ai șiruri de caractere între ghilimele în acea declarație, rezultatul va fi un șir.
Exemple:
String cevaInteresant = 100 + "200" + 300; System.out.println(cevaInteresant); // afișează șirul „100200300”
String altcevaInteresant = 100 + 200 + "300" + 400; System.out.println(altcevaInteresant); /* afișează șirul „300300400”; s-a făcut mai întâi calculul 100 + 200, iar mai apoi s-a făcut concatenarea din care a rezultat șirul... */
String incaCeva = "" + 100 + 200 + 300; System.out.println(incaCeva); /* afișează șirul „100200300”; acele ghilimele de la început anunță că tot ce urmează va fi adăugat într-un șir, adică se va concatena și nu se vor mai face calculele, deși am pus acolo numerele 100, 200, 300 */
Ce zici? Așa-i că este interesantă partea asta de concatenare?
În C++, rivalul direct al limbajului Java, e mult mai complicat să faci o concatenare între șiruri de caractere. În Java totul e mult mai ușor pentru că șirurile de tipul String sunt obiecte.
Ce trebuie să faci mai departe? Învață să fii profesionist!