Sunteți pe pagina 1din 11

Curs 5 POO

© Conf. univ dr. Crenguta M. Puchianu

 Tablouri uni- si bidimensionale

 Clasa String

 Formatarea datelor

 Clasa BufferString

2020
Tablouri

 Un tablou este o colecţie liniară de elemente în care fiecare element este


accesibil prin intermediul unui indice ce reprezintă poziţia elementului în
tablou. În Java, valoarea indicelui porneşte de la 0, unde se găseşte primul
element.

 Un tablou furnizează spaţiu pentru valorile de tip primitiv sau referinţă la


obiectele de un acelaşi tip. Aceste valori se numesc elementele tabloului.

 Elementele unui tablou sunt ordonate dupǎ unul sau mai multe criterii
numite dimensiuni. O dimensiune a unui tablou este indicatǎ printr-o
pereche de []. Dupǎ numărul de dimensiuni, un tablou este uni- sau
multidimensional.

 Referinţa la un tablou este memorată într-o variabilă tablou.

 Sintaxa declararii unei variabile tablou:

TipDeDate[] id; sau TipDeDate id[];


Tablouri (cont.)

 Crearea unui tablou:

id = new Tip[expresie];

unde Tip este tipul de date al variabilei tablou cu identificatorul id, iar
expresie este fie un literal întreg, fie o expresie cu valoare un numǎr întreg.

 Dupa creare, toate elementele tabloului numere sunt iniţializate cu 0, iar


cele ale tabloului personal cu valoarea null.

 Umplerea cu valori:

for (int i=0; i<5; i++) numere[i]=2*i;


for (int i=0; i<1000;i++) personal[i]=new Persoana();
Tablouri (cont.)

 Initializarea unui tablou cu lista de initializatori:

TipDeDate[] id={ListaDeInitializatori}

unde ListaInitializatori este o mulţime de elemente de acelaşi tip cu tipul


tabloului, ce sunt valorile elementelor tabloului id.

 Parcurgerea elementelor unui tablou:

for(int i=0; i<numeVariabilaTablou.length; i++) instrucţiune;


Sau
for(declaratie: expresie) instructiune;

 Clasa System are o metoda folosita pentru copierea elementelor unui


tablou intr-un alt tablou:
static void arraycopy (Object arraySursă, int pozSursă,
Object arrayDest, int pozDest, int nrElemente)
Tablouri multidimensionale

 Tablourile multidimensionale sunt declarate prin adǎugarea dimensiunilor.

int[][] m;

 Alocarea memoriei necesare memorǎrii matricii m se face astfel:

m=new int[3][3];

 Putem declara şi construi tablouri multidimensionale de dimensiuni


diferite.
int[][] b=new int[2][];
b[0]=new int[3];
b[1]=new int[4];

 În cazul tablourilor multidimensionale variabila length are valori diferite.


 b.length =2 ; b[0].length=3; b[1].length=4;
 Obs. b[0][3]-nu exista!!
Siruri de caractere. Clasa String

Prototipul constructorului Semnificaţie


String() Se creează un obiect String ce contine şirul vid.
String(String s) Se creează un obiect String ce contine şirul s.
String(char[] arrayChar) Obiectul creat conţine o copie a caracterelor din
tabloul arrayChar.
String(char[] arrayChar, int Al doilea argument al constructorului indică poziţia de
poz, int nr) la care se copiază elementele tabloului arrayChar, iar
al treilea argument specifică numărul de caractere ce
vor fi copiate din tablou. Dacă unul din argumente
depăşeşte elementele tabloului se lansează excepţia
StringIndexOutOfBoundsException.
String(byte[] arrayBytes) Obiectul creat contine o copie a caracterelor ale căror
cod Unicode este specficat în tabloul arrayBytes.
String(byte[] arrayBytes, int Parametrul schemaCodificare ia una din următoarele
poz, int nr, String valori de tip String: ISO-8859-1, US-ASCII, UTF-8,
schemaCodificare) UTF-16BE, UTF-16LE, UTF-16. Dacă schema de
codificare nu este suportată de sistemul de operare se
lansează o exceptie de tip
UnsupportedEncodingException.
String(StringBuffer sb) Obiectul creat conţine şirul din buffer-ul sb.
Metode instanta ale clasei String

Prototipul metoda Semnificaţie


char charAt(int index) Întoarce caracterul de pe pozitia index din şirul pe
care este aplicată metoda.
int compareTo(String altSir) Compară lexicografic două şiruri şi returnează una din
valorile: un număr negativ, 0 sau un număr pozitiv.
boolean equals(Object Compară (case sensitiv) şirul cu obiectul specificat.
altObiect) Întoarce true numai dacă altObiect este de tip String
şi conţine acelaşi şir de caractere cu şirul cu care se
compară.
boolean Acelaşi efect ca mai sus, numai că nu ţine cont de
equalsIgnoreCase(String altSir) tipul literelor: mari sau mici.
int indexOf(int car) Returnează poziţia în şir pe care se găseşte prima
apariţie a caracterului car specificat prin codul
Unicode. Dacă nu-l găseşte, valoarea rezultată este –
1. Această metodă poate fi folosită pentru căutarea
unui subşir (dat ca parametru) într-un şir.
int lastIndexOf(String str) Întoarce poziţia ultimei apariţii a subşirului str în şir.
Dacă nu-l găseşte, valoarea returnată este –1.
int length() Returnează lungimea şirului pe care este aplicată
metoda.
Metode instanta ale clasei String (cont.)

Prototipul metoda Semnificaţie


String substring(int indiceStart) Întoarce un nou şir care este un subşir extras din şirul
iniţial, de la poziţia indiceStart şi până la sfârşit.
String substring(int indiceStart, Întoarce un nou şir care este un subşir extras din şirul
int indiceStop) iniţial, de la poziţia indiceStart şi până la indiceStop,
exclusiv.
String[] split(String er) Împarte şirul s în subşiruri dupǎ unul sau mai mulţi
delimitatori specificaţi în al doilea parametru şi
returneazǎ un tablou ale cǎrui elemente memoreazǎ în
ordine subşirurile.
boolean regionMatches(int Compară subşirurile de lungime nrCar, începând cu
pozInc1, String s2, int pozInc2, poziţiile specificate în primul şi al treilea parametru.
int nrCar) Metoda întoarce true dacă subşirurile sunt egale.
void getChars(int inc, int sf, Se copiază sf-inc-1 caractere din şir în tabloul dest,
char[] dest, int incDest) începând cu poziţia incDest.
String toLowerCase() Converteşte toate majusculele la litere mici.
String toUpperCase() Converteşte toate literele mici la litere mari.
String trim() Şterge spaţiile din ambele capete ale şirului.
Formatarea datelor

 Sintaxa:
%[numarArgument$][flag][latime][.precizie]conversie
%[numarArgument$][flag][latime]conversie
%[flag][latime]conversie
Câmp al unui Semnificaţie Valori
format
numarArgume Specificǎ numǎrul de ordine al parametrului orice numǎr întreg strict
nt cǎruia se aplicǎ formatul. pozitiv
flag Un set de caractere care se aplicǎ formatul. sunt specificate în tabelul
urmator.
latime Specificǎ numǎrul de caractere ale orice numǎr întreg pozitiv.
parametrului care vor fi luate în considerare. Dacǎ numǎrul este mai mare
decât lungimea parametrului,
se completeazǎ cu spaţiu.
precizie Se aplicǎ numai valorilor numerice întregi şi
reale. În cazul numerelor întregi, semnificǎ
numǎrul maxim de cifre luate în considerare.
În cazul numerelor reale, specificǎ numărul
de cifre zecimale ale numărului format.
Conversie Specificǎ conţinutul furnizat în urma un caracter
formatării.
Formatarea datelor (cont.)

Conv Categoria Descriere


ersie argumentului

'b', general Dacǎ parametrul cǎruia se aplicǎ formatul este de tip boolean sau
'B' Boolean, rezultatul este “true” sau “false”, în funcţie de valoarea
parametrului. Altfel, rezultatul este “true”.
'h', general Dacǎ parametrul este null, atunci rezultatul este "null". Altfel,
'H' rezultatul este obţinut prin apelarea metodei
Integer.toHexString(arg.hashCode()).
's', general Dacǎ parametrul este null, atunci rezultatul este "null". Dacǎ
'S' parametrul implementeazǎ Formattable, atunci se apeleazǎ metoda
parametru.formatTo(). Altfel, rezultatul este obţinut prin apelarea
metodei parametru.toString().
'c', caracter Rezultatul este un character Unicode.
'C'
'd' numǎr întreg Rezultatul este formatat ca un numǎr întreg în baza 10.
'o' numǎr întreg Rezultatul este formatat ca un numǎr întreg în baza 8.
'x', numǎr întreg Rezultatul este formatat ca un numǎr întreg în baza 16.
'X'
'f' numǎr real Rezultatul este formatat ca un numǎr real în baza 10.
'g', numǎr real Rezultatul este formatat ca un numǎr real în baza 10 folosind
'G' notaţia ştiinţificǎ.
't', data/timp Format folosit pentru date calendaristice şi timp.
Metode instanta ale clasei StringBuffer

Prototipul metoda Semnificaţie


char charAt(int index) Întoarce caracterul de pe pozitia index din şirul pe
care este aplicată metoda.
void setCharAt(int poz, char c) Inserează caracterul c pe poziţia poz a şirului
curent.
StringBuffer insert(int poz, Inserează caracterele din tabloul c pe poziţia poz a
char[] c) şirului memorat în obiectul StringBuffer.
StringBuffer insert(int poz, tip i) Insereazǎ valoarea lui i pe poziţia poz a şirului
memorat în obiectul StringBuffer, unde
tip={boolean, int, char, long, float, double, String}.
StringBuffer insert(int poz, Inserează şirul o.toString() pe poziţia poz a şirului
Object o) memorat în obiectul StringBuffer.
StringBuffer append(tip i) Are acelaşi efect cu apelul metodei insert(s.length()-
1, i), adică adaugă prin concatenare la sfârşitul
şirului valoarea lui i, unde tip={boolean, int, char,
long, float, double, String}
String reverse() Înlocuieşte şirul curent cu şirul în oglindă.

String toString() Întoarce reprezentarea String a şirului conţinut în


StringBuffer.

S-ar putea să vă placă și