Cuprins
String
Un String este un şir care conţine mai multe caractere (char, un tip de date care stochează un singur caracter). Fiecărui caracter din String îi este asociată o poziţie (sau index). Numărătoarea poziţiilor începe de la 0. Astfel, şirul "JAVA" conţine 4 caractere care au următorii indecşi:
- J = 0
- A = 1
- V = 2
- A = 3
Deci, pentru un şir de 4 caractere, poziţiile lor vor fi notate de la 0 la 3. Pentru generalizare:
- lungime = n
- poziţie minimă = 0
- poziţie maximă = n-1
Metode
String este o clasă, deci conţine o serie de metode care ajută la aflarea informaţiilor şi generarea de noi şiruri de caractere pe baza şirului deja existent.
Accesaţi documentaţia clasei String. În locul cifrei 8 din cadrul link-ului puteți tasta 6 sau 5 pentru a vedea paginile pentru versiunile mai vechi de Java.
Daţi click pe Frame pentru a vedea toate clasele. Nu vă speriaţi. Nu trebuie să ştim decât câteva.
Coloana din stânga arată return type -ul (tipul datelor rezultate din apelarea respectivelor metode).
De exemplu:
.charAt(int index)
returnează char-ul de la indexul respectiv.concat(String str)
returnează stringul rezultat din concatenarea a două stringuri.equals(Object object)
returnează un boolean (true
saufalse
).getChars(..)
nu returnează nimic (void
)..indexOf(int ch)
returnează unint
(indexul) unui caracter din şir. Acesta poate fi dat între apostroafe şi corespunde tipului de datechar
.
==
. Chiar dacă în unele situații funcționează, pentru a compara două string-uri se va folosi metoda .equals(String str)
.
Valorile returnate de metode pot fi reţinute în variabile de tip corespunzător sau pot fi afişate direct. Dacă tipul returnat este void
, atunci nu le putem folosi ca valori, ci doar le apelăm. Mai multe informații despre metode şi tipul lor găsești în lecția următoare!
// Exemplu utilizare metode String sir = "Ana are mere"; System.out.println("Lungimea sirului este: " + sir.length()); System.out.println("Primul caracter din sir este: " + sir.charAt(0));
Exerciţii
1. Se citeşte de la tastatură un şir de caractere. Să se găsească o metodă care returnează lungimea acestuia şi să se afişeze.
2. Să se citească un şir de caractere de la tastatură. Să se afişeze caracterul de pe prima poziţie şi de pe ultima poziţie.
3. Se citeşte un şir de caractere de la tastatură. Să se afişeze indexul caracterului 'a'. Ce se va afişa dacă şirul introdus nu conţine caracterul 'a'?
4. Să se concateneze 2 şiruri de caractere citite de la tastatură şi să se afişeze rezultatul. Ce opţiuni aveţi?
5. Se citesc 2 şiruri de caractere de la tastatură. Să se afişeze dacă acestea sunt sau nu egale.
Discussion
Exista o problema la Exercitiul 1:
Daca folosim next() o sa ne salveze decat primul cuvant din string, practic din "Ana are mere" ramanem cu "Ana" si se face count doar pe primul cuvant.
Trebuie sa folosim nextLine() pentru a ne salva intregul sir.
Aceeasi problem este si la Exercitiul 5:
Daca folosim next(), dupa primul sir are mai mult de un cuvant, o sa se faca automat compararea intre primele 2 cuvinte.
Ex : "Ana Ana are mere" - Dupa ce dai enter o sa faca comparatia intre Ana si Ana si iti zice false; nu o sa te lase sa introduci al doilea sir.
Merge daca folosim nextLine().