Lab03

background image

Programowanie obiektowe /Java/
Laboratorium nr 3

1

Tablice

1

package

pl.kielce.tu.lab3;

2
3

public class

Tabs {

4
5

public static void

main(String[] args) {

6

int

[]tab1 =

new int

[3];

7

System.out.println(

"tab1.length = "

+ tab1.length +

" tab1[0] = "

+ tab1[0]);

8

int

[]tab2 = {10, 20, 30};

9

System.out.println(

"tab2.length = "

+ tab2.length +

" tab2[0] = "

+ tab2[0]);

10
11

String tab3[] =

new

String[3];

12

System.out.println(

"tab3.length = "

+ tab3.length +

" tab3[0] = "

+ tab3[0]);

13

String tab4 [] =

"Ala ma kota"

.split(

" "

);

14

System.out.println(

"tab4.length = "

+ tab4.length +

" tab4[0] = "

+ tab4[0]);

15
16

boolean

tab5[];

17

//System.out.println("tab5.length = " + tab5.length); // Błąd

18

//tab5 = {true, false, true}; // Błąd

19

tab5 =

new boolean

[3];

20

//System.out.println("tab5[4] = " + tab5[4]); // Wyjątek

21

}

22

}

Przykład 1: src/pl/kielce/tu/lab3/Tabs.java {link}

2

Operatory

1

package

pl.kielce.tu.lab3;

2
3

import

java.util.Random;

4
5

public class

Operators {

6
7

private static void

test1() {

8

//Opertatory jednoargumentowe (-) i (+)

9

int

i = 1;

10

i += +i;

11

i -= -i;

12

System.out.println(

"i = "

+ i);

13

}

14
15

private static void

test2() {

16

//Operatory inkrementacji (++) i dekrementacji (--)

17

int

j = 0;

18

System.out.println(

"j++ = 0 "

+ (j++ == 0));

19

j = 0;

20

System.out.println(

"++j = 0 "

+ (++j == 0));

21

}

22
23

private static void

test3() {

24

//Operatory relacji <, <=, ==, != >=, >

1

background image

25

int

i1 = 0;

26

int

i2 = 0;

27

System.out.println(

"i1 = i2 "

+ (i1 == i2));

28
29

Integer j1 =

new

Integer(0);

30

Integer j2 =

new

Integer(0);

31

System.out.println(

"j1 = j2 "

+ (j1 == j2));

32

System.out.println(

"j1.equals(j2) "

+ (j1.equals(j2)));

33
34

String s1 =

"Ala ma kota"

;

35

String s2 =

"Ala ma kota"

;

36

System.out.println(

"s1 = s2 "

+ (s1 == s2));

37

System.out.println(

"s1.equals(s2) "

+ (s1.equals(s2)));

38
39

String s3 =

new

String(

"Ala ma kota"

);

40

String s4 =

new

String(

"Ala ma kota"

);

41

System.out.println(

"s3 = s4 "

+ (s3 == s4));

42

System.out.println(

"s3.equals(s4) "

+ (s3.equals(s4)));

43

}

44
45

private static void

test4() {

46

//Operatory logiczne: &&, ||, ! (negacja)

47

int

n = 1;

48

// System.out.println("!n " + !n); //Błąd

49

System.out.println(

"true && true "

+ (

true

&&

true

));

50

System.out.println(

"true || true "

+ (

true

||

true

));

51

System.out.println(

"! true "

+ (!

true

));

52

}

53
54

private static boolean

print() {

55

return false

;

56

}

57
58

private static void

test5() {

59

//Skracanie obliczeń wyrażenia logicznego

60

System.out.println(

"Test 1 Początek"

);

61

boolean

t2 = print() &&

false

;

62

System.out.println(

"Test 1 Koniec"

);

63

System.out.println(

"Test 2 Początek"

);

64

boolean

t1 =

false

&& print();

65

System.out.println(

"Test 2 Koniec"

);

66

}

67
68

private static void

test6() {

69

//Operatory bitowe: &, |, ^, ~ (negacja)

70

int

m1 = 0x14;

71

int

m2 = 014;

72

int

m3 = 14;

73

System.out.println(

"0x14 = "

+ m1);

74

System.out.println(

" 014 = "

+ m2);

75

System.out.println(

" 14 = "

+ m3);

76

System.out.println(

"m1 & m2 = "

+ (m1 & m2));

77

System.out.println(

"m1 | m2 = "

+ (m1 | m2));

78

System.out.println(

"m1 ^ m2 = "

+ (m1 ^ m2));

79

System.out.println(

"~m1 = "

+ (~m2));

80

}

81
82

private static void

test7() {

83

//Operatory przesunięć >>, >>>, <<

84

int

s1 = 4;

85

int

s2 = -4;

86

System.out.println(

"s1 >> 1 = "

+ (s1 >> 1) +

" s2 >> 1 = "

+ (s2 >> 1));

2

background image

87

System.out.println(

"s1 >>> 1 = "

+ (s1 >>> 1) +

" s2 >>> 1 = "

+ (s2 >>> 1));

88

System.out.println(

"s1 << 1 = "

+ (s1 << 1) +

" s2 << 1 = "

+ (s2 << 1));

89

}

90
91

private static void

test8() {

92

//Operatory trójargumentowy if-else

93

Random r =

new

Random();

// Generator liczb losowych

94

int

i = r.nextInt();

95

int

signum = i > 0 ? 1 : (i < 0 ? -1 : 0);

// Nawiasy można pominąć

96

System.out.println(

"signum "

+ i +

" = "

+ signum);

97

}

98
99

private static void

test9() {

100

//Operatory rzutowania

101

int

ci = 1;

102

long

cl = 1L;

103

// ci = cl; // Błąd

104

ci = (

int

) cl;

105

cl = ci;

106
107

float

cf = 100f;

108

double

cd = 10e2d;

109

System.out.println(

" 100.0f = "

+ cf);

110

System.out.println(

"10.0e2d = "

+ cd);

111

// cf = cd; // Błąd

112

cf = (

float

) cd;

113

cd = cf;

114

}

115
116

public static void

main(String[] args) {

117

test1();

118

test2();

119

test3();

120

test4();

121

test5();

122

test6();

123

test7();

124

test8();

125

test9();

126

}

127

}

Przykład 2: src/pl/kielce/tu/lab3/Operators.java {link}

Dla typów prostych operator relacji (== lub ! =) działa na zasadzie porównywania wartości zmiennych.

Dla obiektów operator relacji (== lub ! =) działa na zasadzie porównywania referencji. Równoważność
obiektów można sprawdzić wywołując funkcję equals().

3

Instrukcje sterujące

1

package

pl.kielce.tu.lab3;

2
3

import

java.util.Random;

4
5

public class

Instructions {

6
7

private static void

test1() {

8

//Instrukcja warunkowa if-else

9

boolean

wyrazenie_logicze =

false

;

10

if

(wyrazenie_logicze)

3

background image

11

System.out.println(

"1) wyrazenie_logicze = true"

);

12

if

(wyrazenie_logicze);

13

System.out.println(

"2) wyrazenie_logicze = true"

);

14

if

(wyrazenie_logicze)

15

System.out.println(

"3) wyrazenie_logicze = true"

);

16

else

17

System.out.println(

"3) wyrazenie_logicze = false"

);

18

}

19
20

private static void

test2() {

21

//Instrukcja wielokrotnego wyboru switch

22

int

rokStudiow = 1;

23

switch

(rokStudiow){

24

case

1:

25

case

2:

26

case

3:

27

System.out.println(

"Studia I stopnia"

);

28

break

;

29

case

4:

30

case

5:

31

System.out.println(

"Studia II stopnia"

);

32

break

;

33

default

:

34

System.out.println(

"Pomylka"

);

35

}

36

}

37
38

private static void

test3() {

39

//Pętla while, do-while, for, "foreach", "forever"

40

int

h = 5;

41

while

(h < 3){

42

System.out.println(

"1) h = "

+ h);

43

h++;

44

}

45
46

h = 5;

47

do

{

48

System.out.println(

"2) h = "

+ h);

49

h++;

50

}

while

(h < 3);

51
52

int

g[] = {10, 20, 30};

53

for

(

int

c = 0; c < g.length; c++, c--, c++)

54

System.out.println(

"g["

+ c +

"] = "

+ g[c]);

55
56

for

(

int

x : g)

57

System.out.println(x);

58
59

//for(;;)

60

// System.out.println("Nieskończona pętla");

61

}

62
63

private static void

test4() {

64

zewnetrznaPetla:

for

(

int

v = 0; v < 10; v++){

65

wewnetrznaPetla:

for

(

int

w = 0; w < 2; w++){

66

System.out.println(

"v = "

+ v +

" w = "

+ w);

67

switch

(v){

68

case

0:

69

System.out.println(

"continue"

);

70

continue

;

71

case

1:

72

System.out.println(

"break"

);

4

background image

73

break

;

74

case

2:

75

System.out.println(

"continue wewnetrznaPetla"

);

76

continue

wewnetrznaPetla;

77

case

3:

78

System.out.println(

"break wewnetrznaPetla"

);

79

break

wewnetrznaPetla;

80

case

5:

81

System.out.println(

"continue zewnetrznaPetla"

);

82

continue

zewnetrznaPetla;

83

case

6:

84

System.out.println(

"break zewnetrznaPetla"

);

85

break

zewnetrznaPetla;

86

}

87

}

88

}

89

}

90
91

public static void

main(String[] args) {

92

test1();

93

test2();

94

test3();

95

test4();

96

}

97

}

Przykład 3: src/pl/kielce/tu/lab3/Instructions.java {link}

Instrukcja break powoduje wyjście z bieżącej pętli. Instrukcja continue powoduje pominięcie reszty bie-

żącej pętli i rozpoczęcie kolejnej iteracji. Etykieta jest to identyfikator po którym następuje dwukropek np.
Label

:. Etykieta może wystąpić tylko przed instrukcją iteracji. Instrukcja continue Label przerywa wszyst-

kie pętle do poziomu etykiety Label. Następnie pętla poziomu etykiety Label jest kontynuowana. Instrukcja
break Label

przerywa wszystkie pętle do poziomu etykiety Label. Pętla poziomu etykiety Label także jest

przerywana.

4

Formatowanie tekstów

-

b

,

B

– jeżeli argument ma wartość null to wynikiem jest ”f alse”, jeżeli jako argument została przeka-

zana zmienna boolean lub Boolean to wynikiem jest tekst zwrócony przez String.valueOf (), w innym
przypadku wynikiem jest ”true”,

-

h

,

H

– jeżeli argument ma wartość null to wynikiem jest ”null”, w innym przypadku jest to wynik

wywołania Integer.toHexString(arg.hashCode()),

-

s

,

S

– jeżeli argument ma wartość null to wynikiem jest ”null”, jeżeli argument implementuje

F ormattable

, to dla argumentu wywoływana jest metoda f ormatT o, w innym przypadku wynikiem

jest tekst zwrócony przez arg.toString(),

-

c

,

C

– znak Unicode (*),

-

d

– liczba w formacie dziesiętnym (**),

-

o

– liczba w formacie ósemkowym (**),

-

x

,

X

– liczba w formacie szesnastkowym (**),

-

e

,

E

– liczba dziesiętna w zapisie naukowym (***),

-

f

– liczba dziesiętna (***),

-

n

– zależny od platformy znak nowej linii.

Oznaczenia:

5

background image

* dotyczy char, Character, byte, Byte, short, Short oraz int and Integer pod warunkiem, że metoda
Character.isV alidCodeP oint

(int) zwraca true,

** dotyczy byte, Byte, short, Short, int, Integer, long, Long, oraz BigInteger,

*** dotyczy f loat, F loat, double, Double, oraz BigDecimal.

1

package

pl.kielce.tu.lab3;

2
3

public class

Formats {

4
5

public static void

main(String[] args) {

6

int

x = 123;

7

String s = String.format(

"dec %d %n"

, x);

8

s += String.format(

"oct %o %n"

, x);

9

s += String.format(

"hex %x %n"

, x);

10

System.out.print(s);

11
12

System.out.printf(

"dec %4d %n"

, x);

13

System.out.printf(

"oct %8o %n"

, x);

14

System.out.printf(

"hex %12x %n"

, x);

15

}

16

}

Przykład 4: src/pl/kielce/tu/lab3/Formats.java {link}

Szczegóły dotyczące formatowania można znaleźć:

http://download.oracle.com/javase/6/docs/api/java/util/Formatter.html

5

Wyrażenia regularne

Klasy znaków:

[abc] – a, b, lub c,
[

abc

] – wszystkie znaki poza a, b oraz c,

[a − cA − c] – znaki od a do c oraz od A do C,
[a − k&&[i − z]] – i, j oraz k (część wspólna).

Predefiniowane klasy znaków:

.

(kropka) – dowolny znak,

\d – cyfra [0 − 9],
\D – inny znak poza cyfrą [

0 − 9],

\s – biały znak [\t\n\x0B\f \r],
\S – inny znak poza białym znakiem [

\s],

\w – litera mała, duża lub cyfra [a − zA − Z0 − 9],
\W – inny znak poza literą mała, dużą lub cyfrą [

\w],

W zmiennych typu String symbol \ musi zostać zastąpiony przez \\.

Znaki dotyczące zakotwiczenia:

- początek linii,

\$ – koniec linii,
\b – granica słowa,
\B – przeciwieństwo granicy słowa.

Zachłanny kwantyfikator (ang. greedy) – dopasowuje maksymalny, możliwy fragment ciągu do wzorca.

Niechętny kwantyfikator (ang. reluctant) – dopasowuje minimalny, konieczny fragment ciągu do wzorca.
W tabeli podana jest liczba wystąpień X.

W przykładzie 5 pokazany został sposób sprawdzenia czy wprowadzony tekst jest zgodny z podanym

wyrażeniem regularnym:

6

background image

Zachłanny

Niechętny

Raz lub wcale

X?

X??

Zero lub więcej razy

X*

X*?

Raz lub więcej razy

X+

X+?

Dokładnie n razy

X{n}

X{n}?

Co najmniej n razy

X{n,}

X{n,}?

Co najmniej n razy, ale nie więcej niż m razy

X{n,m}

X{n,m}?

1

package

pl.kielce.tu.lab3;

2
3

import

java.util.regex.Matcher;

4

import

java.util.regex.Pattern;

5
6

public class

Regs {

7
8

public static void

main(String[] args) {

9

Pattern p = Pattern.compile(

"\\d{2}-\\d{3}"

);

10

String s =

"25-900"

;

11

Matcher m = p.matcher(s);

12

System.out.println(

"Pattern ("

+ p +

" matches "

+ s +

": "

+ m.matches());

13

}

14

}

Przykład 5: src/pl/kielce/tu/lab3/Regs.java {link}

Szczegóły dotyczące wyrażeń regularnych można znaleźć:

http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

6

Przykładowa treść laboratorium

Proszę stworzyć oraz uruchomić aplikację zgodną ze specyfikacją podaną przez prowadzącego np. spraw-

dzającą czy tekst jest zgodny z podanym wyrażeniem regularnym.

7


Document Outline


Wyszukiwarka

Podobne podstrony:
eksploracja lab03, Lista sprawozdaniowych bazy danych
LAB03
BO Lab03
lab03
Lab03
eksploracja-lab03 Ps 03
eksploracja-lab03 Opis bazy danych Document Understanding
Lab03 Switched LANs
infa, Inf Lab03
Inf Lab03
PS lab03 mini lecture (DFT2)
java lab03 initialization
Inf Lab03
ADINA84 4rok Lab03
Lab03 Sprawozdanie id 258792 Nieznany
access st2008z lab03 relacje normalizacja
eksploracja lab03, Opis bazy danych Document Understanding
Inf Lab03 DODATEK NWD

więcej podobnych podstron