If you're seeing this message, it means we're having trouble loading external resources on our website.

Dacă sunteţi în spatele unui filtru de web, vă rugăm să vă asiguraţi că domeniile *. kastatic.org şi *. kasandbox.org sunt deblocate.

Conţinutul principal

Operații cu șiruri de caractere

Programele nu doar memorează șiruri de caractere, ci pot să le și prelucreze. Folosind operațiile pentru șiruri de caractere, putem să extragem părți din ele, să amestecăm mai multe șiruri sau să le transformăm în diverse moduri.

Concatenarea șirurilor

Ne place la nebunie să adăugăm noi termeni în exprimarea folosită în programare. Un cuvânt pe care probabil nu l-ai mai auzit până acum este concatenarea, un cuvânt pe care îl folosim pentru a spune că lipim sau scriem succesiv mai multe șiruri de caractere.
Iată cum arată concatenarea în JavaScript:
var name = "Winston";
var greeting = "Hello, " + name;
Variabila greeting memorează rezultatul concatenării a două șiruri de caractere; înlănțuirea celor două șiruri. De fact, cuvântul concatenare înseamnă “alipirea sau legarea unul de altul” - provine din limba latină astel: con- (“împreună”) și catenare- (“legare”).
Putem concatena oricâte șiruri:
var name = "Winston";
var title = "Sir";
var greeting = "Hello, " + title + name;
Observă că am concatena șiruri de caractere cuprinse între ghilimele împreună cu variabile. Șirurile scrise între ghilimele le numim șiruri constante (sau literali) pentru că se consideră exact așa cum sunt, literă cu literă, în timp ce variabilele reprezintă șirurile pe care le conțin (cele memorate în acele variabile).
✏️ Programul de mai jos afișează rezultatul operației de concatenare. Observi ceva care nu este chiar așa cum ar trebui? Poți să repari?
📝 Vezi codul echivalent în: App Lab | Snap | Python
Verifică dacă ai înțeles
Imaginează-ți că programul nostru începe cu următoarea linie:
var nickname = "SplashyPants";
Selectează instrucțiunea JavaScript care memorează corect mesajul "Ahoy, SplashyPants!":
Alege un răspuns:

Împărțirea unui șir în subșiruri

Putem să facem și operația inversă concatenării: putem împărți un șir de caractere în mai multe părți și să memorăm doar una dintre acele părți. Fiecare parte se numește subșir.
O metodă de a extrage un subșir în JavaScript folosește comanda substr(). Aceasta are doi parametri: poziția de unde începe extragerea și lungimea, adică numărul de caractere extrase. Pentru a face acest lucru, folosim chiar șirul din care extrage:
"Harry Potter".substr(0, 5);
Atât în JavaScript, cât și în majoritatea limbajelor, prima poziție dintr-un șir de caractere este dată de indicele 0. Hai să vizualizăm indicii unui string:
HarryPotter
01234567891011
Instrucțiunea de mai sus începe de la poziția 0, adică de la litera "H", și returnează un șir format din 5 caractere, adică subșirul "Harry".
O eroare de poziționare des întâlnită o reprezintă o greșeală de raționament care apare atunci când lucrăm cu indici și folosim valori prea mari sau prea mici. Indiferen ce limbaj sau instrucțiune folosești, asigură-te că înțelegi exact cum funcționează acea instrucțiune și verifică rezultatul.
✏️ Programul de mai jos extrage mai multe subșiruri ale unui singur string (care reprezintă un număr de telefon). Încearcă să editezi programul astfel încât să memorezi al treilea subșir (numărul de extensie).
📝 Vezi codul echivalent în: App Lab | Snap | Python

Alte operații cu șiruri de caractere

Concatenarea și împărțirea șirurilor de caractere reprezintă doua două dintre posibilitățile de prelucrare a șirurilor folosind variabile. În funcție de scopul programului tău, poți încerca să modifici șirurile de caractere și altfel.
Iată mai jos o listă cu cele mai frecvente operații cu șiruri de caractere întâlnite în mai multe limbaje:
OperațieExemplu JavaScript
Determinarea poziției unui anumit caracter într-un string"hello".indexOf("e")
Rescriere unui string doar cu litere mici sau doar cu litere mari"HI".toLowerCase(), "hi".toUpperCase()
Aflarea lungimii (numărului de caractere) unui string"alphabet".length

Înlănțuirea mai multor operații

Să presupunem că vrem să rescriem doar cu litere mari și să extragem un subșir.
O modalitate ar fi să o luăm pas cu pas:
var address = "329 Baltimore Lane";
var upperAddr = address.toUpperCase();
var upperStreet = upperAddr.substr(4, 9);
O altă variantă ar fi să înlănțuim cele două operații:
var address = "329 Baltimore Lane";
var upperStreet = address.toUpperCase().substr(4, 9);
În cea de-a doua instru©tiune se apelează mai întâi funcția upperCase(), care returnează "329 BALTIMORE LANE", apoi se apelează imediat substr() direct pe acel șir cu litere mari obținut.

Operații cu șiruri de caractere în pseudocod

Deoarece multe dintre limbajele de programare folosesc funcții pentru operațiile cu șiruri de caractere (în loc de operatori precum +), hai să vedem cum ar arăta ele în limbajul pseudocod.
De exemplu, o descriere a operației de concatenare ar fi următoarea:
PseudocodDescriere
CONCAT (str1, str2)Concatenează str1 și str2, returnând șirul obținut prin alipirea lor.
Următoarea comandă pseudocod folosește CONCAT pentru a memora "DogHouse" în variabila home:
home ← CONCAT ("Dog", "House");
O operație de împărțire se poate face doar pe un string, dar sunt necesari parametri pentru a ști unde se împarte. De aceea, o descriere a operației de împărțire arată astfel:
PseudocodDescriere
SLICE (str, start, length)Returnează acel subșir al șirului str care începe de la indexul start și este format din exact length caractere. În limbajul pseudocod, primul index este 1.
Comanda pseudocod de mai jos apelează SLICE pentru a memora "Dan" în variabila nickname:
nickname ← SLICE ("Daniel", 1, 3);
⚠️ Observă că limbajul pseudocod presupune că primul index al șirului este 1, în timp ce în JavaScript și în multe alte limbaje primul index este 0. Acordă o grijă deosebită oricărei descrieri de comandă care conține indici.
Verifică dacă ai înțeles
Care este instrucțiunea în pseudocod echivalentă cu următoarea instrucțiune JavaScript?
"San Diego".substr(0, 3)
Alege un răspuns:


🙋🏽🙋🏻‍♀️🙋🏿‍♂️Ai vreo întrebare pe acest subiect? Ne-ar face plăcere să îți răspundem— nu ai decât să pui întrebarea în spațiul de mai jos!