Documente Academic
Documente Profesional
Documente Cultură
Facultatea de Inginerie
Departamentul de Automatic, Energie i Mediu
PROGRAMARE ORIENTAT
PE OBIECTE
Curs 15
Limbajul JAVA
03.01.2014
1. Tablouri bidimensionale
2. Siruri de caractere (String-uri)
3. Concatenarea sirurilor de caractere
4. Metode pentru extragerea de caractere sau
subsiruri dintr-un sir
Metode pentru inlocuirea aparitiilor unui
caracter sau unui subsir dintr-un sir cu un alt
caracter sau subsir
5. Conversii intre siruri de caractere (String) si
alte tipuri de date primitive - metode folosite
03.01.2014
1. Tablouri bidimensionale
Tablourile bidimensionale in Java sunt
tablouri unidimensionale de referinte catre
tablouri unidimensionale (adica, sunt tablouri
de referinte la tablouri unidimensionale).
Declararea si crearea tablourilor
bidimensionale se realizeaza tot in doi pasi:
1. declararea tabloului de un anumit tip (primitiv
sau referinta)
2. alocarea zonei de memorie pentru tabloul
declarat si initializarea lui
03.01.2014
<tip> <nume_tablou> [ ][ ];
sau
<tip> [ ][ ] <nume_tablou>;
sau
<tip> [ ] <nume_tablou> [ ];
03.01.2014
unde:
- <tip> - specifica tipul de date primitiv sau tipul de
obiecte (dat de clasa) al elementelor tabloului
- <nume_tablou> - reprezinta numele unei variabile
referinta la tabloul de tipul <tip>
acesta variabila referinta la un tablou
bidimensional contine valoarea null, la fel ca si
variabila referinta <nume_tablou>[i] care contine
valoarea null pentru referinta la linia i a tabloului
Nota: parantezele drepte sunt obligatorii, nu
delimiteaza o constructie optionala.
03.01.2014
03.01.2014
Nota:
De cele mai multe ori programatorii
combina declararea si alocarea zonei de
memorie pentru un tablou intr-o singura
instructiune, astfel
Tabloul de referinte
03.01.2014
10
03.01.2014
11
Noile tablouri
alocate
03.01.2014
12
TablouDeCaractere
03.01.2014
13
03.01.2014
14
03.01.2014
15
03.01.2014
16
03.01.2014
17
De exemplu:
float [][] matrice = new float [3][4];
// dimensiune1
stocheaza valoarea 3
// dimensiune2
03.01.2014
18
<nume_tablou> [<indice_linie>]
[<indice_coloana]
Nota: Parantezele patrate reprezinta
operatorul de indexare.
03.01.2014
19
Exemplu:
int a[4][3];
elementele tabloului sunt:
a[0][0], a[0][1], a[0][2], a[1][1], a[1][2], ,
a[3][2].
03.01.2014
20
03.01.2014
21
Exemplu
Sa se citeasca elemente de tip intreg si sa se
stocheze intr-un tablou bidimensional, iar apoi sa
se afiseze aceste elemente.
Codul sursa al programului cu numele
matrice.java este urmatorul:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class matrice
{
public static void main(String[] args)throws
IOException
{
03.01.2014
22
int n,m;
System.out.print("Introduceti numarul de linii
n=");
BufferedReader stdin = new
BufferedReader(new
InputStreamReader(System.in));
n = Integer.parseInt(stdin.readLine());
System.out.print("Introduceti numarul de
coloane m=");
m = Integer.parseInt(stdin.readLine());
03.01.2014
23
24
03.01.2014
25
03.01.2014
26
03.01.2014
27
03.01.2014
28
03.01.2014
29
import java.io.*;
public class loto
{
public static void main(String[ ] args) throws
IOException
{
int[ ] numere = new int[50];
for (int i = 0; i < numere.length; ++i)
numere[i] = 0;
for (int i = 0; i < 1000; ++i)
for (int j = 0; j < 6; ++j)
//genereaza numere de loterie intre 1 si 49
30
11: 121
12: 116
13: 133
14: 148
15: 142
16: 129
17: 137
18: 129
19: 120
20: 124
21: 131
22: 114
23: 127
24: 124
25: 111
26: 141
27: 122
28: 107
29: 121
30: 121
31: 113
32: 120
33: 105
34: 130
35: 134
36: 128
37: 109
38: 126
39: 103
40: 131
03.01.2014
41: 128
42: 149
43: 121
44: 142
45: 119
46: 107
47: 122
48: 107
49: 123
31
1. Tablouri bidimensionale
2. Siruri de caractere (String-uri)
3. Concatenarea sirurilor de caractere
4. Metode pentru extragerea de caractere sau
subsiruri dintr-un sir
Metode pentru inlocuirea aparitiilor unui
caracter sau unui subsir dintr-un sir cu un alt
caracter sau subsir
5. Conversii intre siruri de caractere (String) si
alte tipuri de date primitive - metode folosite
03.01.2014
32
03.01.2014
33
34
De exemplu:
String mesaj1 = Java;
String mesaj2 = Eclipse;
String mesaj2_repet = mesaj2;
03.01.2014
35
03.01.2014
36
03.01.2014
37
38
03.01.2014
39
03.01.2014
40
unde:
- <valoare> - tabloul de caractere care
reprezinta sursa secventei de caractere a
noului String;
- <deplasament> - indexul primului caracter din
tabloul de caractere de la care se va incepe
initializarea noului String;
- <lungimeSecventa> - lungimea secventei de
caractere preluata din tabloul de caractere
pentru initializarea noului String.
03.01.2014
41
03.01.2014
42
43
De exemplu:
char[] caractere1 = {a, b, c, d, e, f};
03.01.2014
44
1. Tablouri bidimensionale
2. Siruri de caractere (String-uri)
3. Concatenarea sirurilor de caractere
4. Metode pentru extragerea de caractere sau
subsiruri dintr-un sir
Metode pentru inlocuirea aparitiilor unui
caracter sau unui subsir dintr-un sir cu un alt
caracter sau subsir
5. Conversii intre siruri de caractere (String) si
alte tipuri de date primitive - metode folosite
03.01.2014
45
03.01.2014
46
03.01.2014
47
48
De exemplu:
String nume = Popescu ;
String prenume = Vasile;
String numePrenume =
nume.concat(prenume);
// returneaza Popescu
Vasile
sau:
String sirNou = la .concat(Popescu).
concat.(Vasile); // returneaza la Popescu Vasile
03.01.2014
49
03.01.2014
50
51
03.01.2014
52
import java.io.*;
public class EqualsSiruri
{
public static void main(String[] args)
throws IOException
{
char[ ] caractere1 = new char[20];
char[ ] caractere2 = new char[20];
for (int i=0; i <=19; i++)
caractere1[i] = ' ';
for ( int i=0; i <=19; i++)
caractere2[i] = ' ';
03.01.2014
53
54
Nota:
Cateva precizari asupra folosirii metodei read din
clasa BufferedReader, definita in pachetul
java.io.Reader.
Antetul metodei read este:
55
56
57
03.01.2014
58
public boolean
equalsIgnoreCase(String <altSir>)
unde:
- <altSir> - un alt obiect de tip String cu care
se face comparatia sirului curent.
03.01.2014
59
03.01.2014
60
61
De exemplu:
int rezultat = sir1.compareTo(sir2);
03.01.2014
62
public int
compareToIgnoreCase(String <altSir>)
unde:
- <altSir> - un alt obiect de tip String cu care se
face comparatia sirului curent.
03.01.2014
63
03.01.2014
64
1. Tablouri bidimensionale
2. Siruri de caractere (String-uri)
3. Concatenarea sirurilor de caractere
4. Metode pentru extragerea de caractere sau
subsiruri dintr-un sir
Metode pentru inlocuirea aparitiilor unui
caracter sau unui subsir dintr-un sir cu un alt
caracter sau subsir
5. Conversii intre siruri de caractere (String) si
alte tipuri de date primitive - metode folosite
03.01.2014
65
03.01.2014
66
03.01.2014
67
03.01.2014
68
03.01.2014
69
1. Tablouri bidimensionale
2. Siruri de caractere (String-uri)
3. Concatenarea sirurilor de caractere
4. Metode pentru extragerea de caractere sau
subsiruri dintr-un sir
Metode pentru inlocuirea aparitiilor unui
caracter sau unui subsir dintr-un sir cu un alt
caracter sau subsir
5. Conversii intre siruri de caractere (String) si
alte tipuri de date primitive - metode folosite
03.01.2014
70
71
03.01.2014
72
73
74
03.01.2014
75
76
77
03.01.2014
78
03.01.2014
79
80
import java.io.*;
public class ParseIntSiruri
{
public static void main(String[] args) throws
IOException
{
char[] caractere = new char[20];
for (int i=0; i <=19; i++)
caractere[i] = ' ';
BufferedReader br1 = new BufferedReader(new
InputStreamReader(System.in));
System.out.println ("Introduceti primul numar");
br1.read(caractere, 0, 20);
String sir1= new String(caractere).trim();
int x = Integer.parseInt(sir1);
System.out.println("Sirul transformat in numar
este:" + x);
03.01.2014
81
82
03.01.2014
83
84
03.01.2014
85
03.01.2014
86
03.01.2014
87
88
03.01.2014
89
03.01.2014
90
91
}
03.01.2014
92
03.01.2014
93
ntrebri?
03.01.2014
94