My blog

posts

What strings are

Toti cred ca am auzit de acest tip de data “String” ( tradus in romana, vector de caractere) si probabil nu toti l-am inteles pe deplin. Daca n-ai auzit niciodata de acest concept sper ca muschiul de pe copac de la pranz a fost satietos, iar lupii din pestera nu ti-au facut mari probleme noaptea trecuta. 

Revenind, string-urile nu sunt un tip primitiv de date ( adica nu sunt tipuri elementare precum int, long, char, double), pentru a stoca siruri de caractere putem folosi linistiti tipul char. Pai si de ce nu o facem? Preferam sa folosim string-uri datorita flexibilitatii pe care ne-o ofera. Tipul string nu este nimic altceva decat o clasa cu propriile sale atribute si functii care sunt neschimbabile, prin aceasta el este interpretat in mod diferit fata de primitive. 

Primitivele au limitari in ceea ce inseamna folosirea memoriei si pot contine numai si numai valori de acel tip, pe cand String-urile pot varia in lungime in functie de cuvant si pot tine orice tip de data atat timp cat corespund aceleiasi interfete (vom discuta despre interfete in alt post).

De asemenea, limbaje de programare precum Java trateaza String-urile diferit de celelalte tipuri de date, deoarele le interpreteaza ca fiind un sir lung de concatenari (alipire a doua string-uri) care sunt realizare de alte clase precum StringBuilder.

Metodele de declarare a unei variabile de tipul String difera de la limbaj la limbaj, insa notatia specifica unui string se face cu ajutorul ghilimelelor. Astfel ca putem, spre exemplu declara in PHP un string astfel $var = “hello”, iar notatia va fi asemanatoare si in celelalte limbaje de programare, singura diferenta fiind specificarea tipului de data ( exemplu in java: String var = “hello”).

Am mentionat mai sus ca putem folosi stringurile ca sa tinem si alte tipuri de date. Probabil te intrebi ce alte tipuri de date poti tine intr-un string. Ei bine, de la tipuri precum Int, Double, Date pana la vectori si fisiere in format json. Vei intelege  mai bine intr-o secunda despre ce vorbesc.

Sa ne imaginam ca vrem sa stocam intr-o variabila o data anume. Prima data vom initializa variabila si vom face o noua instanta de clasa Date.

Date birthday = new Date();
Apoi pentru a specifica exact care este data pe care vrem sa o stocam avem mai multe variante printre care si folosirea unui string. 
Date birthday = new Date(“03-03-2000”); 
println(date); // 03-03-2000 00:00:00 AM

Dupa cum vezi, am scris data din string in formatul in care vreau sa apara pe ecran. Clasa Date va analiza string-ul si va returna  data de 3 Martie 2000. 

Acelasi lucru se poate face si cu celelalte tipuri de date. Vezi exemplul de mai jos.
String s = “23”;
Int i = Int.parseInt(s);
println(i); // 23

Dupa cum ai observat am scris tipul de data int  la inceput cu litera mare, asta inseamna ca voi avea o clasa Int si nu tipul primitiv. In majoritatea limbajelor de programare OOP(Object-oriented programming) tipurile primitive au clase care reprezinta (teoretic) acelasi tip de date, insa ofera un plus prin multitudinea de functii pe care acea clasa le are. 

Ok, sper ca nu a fost prea mult de citit si ca am facut acest concept destul de usor de inteles. Concluzia e ca atunci cand vrei sa stochezi siruri de caractere cel mai probabil vei folosi string-uri nu doar pentru ca faciliteaza memoria utilizata, dar si pentru atributele si functiile acestora. 

Daca ti-a placut articolul de azi te rog lasa-mi un comentariu, iar in caz constrat astept sfaturi pentru a-mi putea imbunatati continutul de pe acest site. Yeah, and don’t forget : Be smart and code simple! 

0 Comments

  • Be the first one who leaves a comment!

Add a comment