Modul 5 - 5.17 Stringurile
-
Upload
matei-ioan -
Category
Documents
-
view
224 -
download
0
Transcript of Modul 5 - 5.17 Stringurile
-
7/25/2019 Modul 5 - 5.17 Stringurile
1/16
Stringurile
Unitate: 17 din 24
+Rezumat
Stringurile reprezint un tip de dat ce posed caracteristici att ale tipurilor primitive, ct i ale obiectelor.
Strict vorbind, stringul este un obiect definit de clasa String. Un obiect string reprezint o secven de
caractere i aproape toate limbaele ofer aceast op iune, fiindc este mai convenabil s lucrezi cu o
colec ie dect cu fiecare caracter separat. !ava are de asemenea mecanisme "ncorporate pentru
convertirea unui string "ntr#un ir de caractere primitive i viceversa.
!ava ofer o func ie special a clasei String, ce permite obiectelor de tip string s se comporte ca tipurile
primitive. Un obiect string poate fi creat utiliznd caracterul $, iar stringurile pot fi concatenateutiliznd
caracterul %. &ac utilizm % cu orice alt tip, vom cauza fie o eroare "n timpul e'ecu iei, fie o opera ie de
adunare asupra unor tipuri ce nu sus in acest lucru.
Crearea stringurilor
(ea mai comun metod pentru crearea stringurilor este:
String message = "Hi!";
)n e'emplul de mai sus, am declarat o variabil de tip string cu denumirea message i valoarea *i+. &e i
tipul string nu este primitiv, limbaul !ava ne permite s#l crem ca i cum ar fi astfel. ceast construc ie
a stringurilor se nume te implicit.
-a fel ca "n cazul oricrui alt obiect, un string poate fi creat cu autorul cuvntului ceie ne/. S vedem un
e'emplu:
String word = new String("Hi!");
)n linia anterioar, am creat un obiect de tip string utiliznd cuvntul ceie ne/ i transmi nd o valoare
constructorului. 0 astfel de construc ie se nume te e'plicit.
'ist o diferen important "ntre aceste dou metode de creare a stringurilor. )n construc ia implicit,
!ava are un mecanism special pentru salvarea valorilor de tip string. alorile te'tuale definite implicit 3fr
un constructor sunt salvate "ntr#o sec iune special numit (ommon pool. &ac definim dou variabile
de tip string cu aceea i valoare, vor "mprt i acela i con inut "n (ommon pool.
5e de alt parte, obiectele de tip string create cu autorul cuvntului ceie ne/ i a constructorului vor fi
stocate "n eap, iar (ommon pool nu va e'ista pentru ele, deoarece e'ist pentru stringurile create "n
acela i mod ca tipuri primitive.
5entru a clarifica acest aspect, vom arta cteva stringuri definite "n moduri diferite. )n 6igura 1, vom
ilustra metoda de salvare a acestor valori "n memorie.
http://www1.link-elearning.com/linkdl/opisPojma.php?id=133281http://www1.link-elearning.com/linkdl/opisPojma.php?id=133281http://www1.link-elearning.com/linkdl/opisPojma.php?id=133281 -
7/25/2019 Modul 5 - 5.17 Stringurile
2/16
String s1 = "Hello";
String s2 = "Hello";
String s3 = s1;
String s4 = new String("Hello");
String s5 = new String("Hello");
17.1 Diferen a dintre construc ia implicit i explicit a stringurilor
Concatenarea stringurilor
)n introducerea acestei lec ii am men ionat c !ava permite func ia de concatenare. (nd dorim
sconcatenmun string cu un alt string, folosim caracterul % sau metoda special concat.String myString = "My ";
String myString1 = "string";
System.out.rintln(myStringmyString1);
Sau:
String myString = "My ";
String myString1 = "string";
System.out.rintln(myString.onat(myString1));
mbele tenici func ioneaz bine, "ns doar pe termen scurt. 5entru o concatenare mai serioas astringurilor, aceste metode nu sunt bune, fiindc nu concateneaz un string cu un string e'istent, ci
creeaz un nou obiect string "n memorie, al crui con inut este alctuit din cele dou stringuri
concatenate. ceasta este o consecin a faptului c stringul nu este un obiect mutabil, ceea ce
"nseamn c, dup creare, con inutul su nu se mai poate modifica. ceasta "n scimb "nseamn c
construc ia unui mare numr de stringuri cu metoda concatenrii va duce la acumularea obiectelor string
"n memorie.
http://www1.link-elearning.com/linkdl/opisPojma.php?id=133281http://www1.link-elearning.com/linkdl/opisPojma.php?id=133281http://www1.link-elearning.com/linkdl/opisPojma.php?id=133281 -
7/25/2019 Modul 5 - 5.17 Stringurile
3/16
om rezolva acest lucru prin utilizarea clasei Stringuilder care este de fapt o list de stringuri
reprezentate printr#un singur obiect. Utiliznd aceast clas, vom reduce semnificativ consumul de
memorie "n timpul concatenrii stringurilor i vom cre te lizibilitatea codului. Urmtorul e'emplu va da
acela i rezultat ca cel anterior, doar c de aceast dat vom utiliza clasa Stringuilder :
String#uilder s$ = new String#uilder();s$.aend("My ");
s$.aend("string");
System.out.rintln(s$);
ceast modalitate de gestionare a stringurilor este considerat cea mai bun atunci cnd vorbim de
concatenare.
Func iile stringurilor
&up cum am spus dea, tipul string este un tip de date comple' "n !ava, fiind un tip de obiect. cest lucru
ne permite ca asupra variabilelor de acest tip s apelm diverse metode pentru procesarea valorilor
acestor variabile. )n partea urmtoare, vom utiliza cteva dintre cele mai utilizate metode pentru
procesarea stringurilor. Una dintre metode este un bloc de cod ce efectueaz o anumit func ie. 8etoda
poate avea parametri de intrare i de ie ire, "ns acest lucru nu este obligatoriu. 5arametrii de intrare,
dac ace tia e'ist, sunt introdu i "ntre paranteze dup denumirea metodei. 5arametrii de ie ire
reprezint rezultatul de e'ecu ie a metodei.
toCharArray()
&ac dorim s tratm o valoare te'tual de tip string ca ir, va trebui s convertim mai "nti stringul "ntr#o
secven de caracteri. 5utem face acest lucru utiliznd metoda to(arrra9.
String word = "Hello";
%ar&' %arrray = word.to%arrray();
*or (int i = +; i , %arrray.lengt%; i) -
System.out.rintln(%arrray&i');
(odul de mai sus ilustreaz utilizarea metodei to(arrra9, pe care am utilizat#o pentru a converti un
string "ntr#un ir de caractere. 8ai apoi, am utilizat o bucl for pentru a lista caracterele i pentru a afi a
rezultatele la ie ire.
length()
ceast metod se utilizeaz pentru a ob ine informa ii despre lungimea unei variabile de tip string.
6unc ia returneaz numrul de caractere con inut de obiectul string. *aide i s privim urmtorul cod:
-
7/25/2019 Modul 5 - 5.17 Stringurile
4/16
1
2
3
4
5
6
7
u$listati/oidmain(String args&') -
String word = "Hello";
intlen = word.lengt%();
System.out.rintln( "String lengt% is 0 " len );
&up e'ecu ia codului anterior, vom ob ine urmtorul rezultat la ie ire:
String engt% is 5
toUpperCase()
ceast func ie converte te "n mauscule toate caracterele stringului transmis. ine"n eles, aceast
func ie ia "n considerare doar caracterele literale, a adar caracterele care nu sunt litere vor rmne
nemodificate. S privim urmtorul e'emplu:
1
2
3
4
5
6
u$listati/oidmain(String&' args) -
String str = "elome to !";
System.out.rint("eturn 6alue 0 ");
System.out.rintln(str.to7erase());
ezultatul la ie ire este:
eturn 6alue 0 89M8 9 !
toLowerCase()
naloag func iei anterioare, func ia to-o/er(ase3 efectueaz opera ia opus, convertind toate
caracterele literale "n minuscule.
1
2
3
45
6
u$listati/oidmain(String&' args) -
String str = "elome to !";
System.out.rint("eturn 6alue 0 ");System.out.rintln(str.toowerase());
ezultatul ie irii este urmtorul:
eturn 6alue 0 welome to ita!
-
7/25/2019 Modul 5 - 5.17 Stringurile
5/16
trim()
8etoda trim3 se folose te pentru a tia caracterele goale de la "nceputul i finalul unui string. S privim
urmtorul e'emplu:
1
2
3
4
5
6
u$listati/oidmain(String&' args) -
String Str = " elome to ademy ";
System.out.rint("eturn 6alue 0");
System.out.rintln(Str.trim());
5ute i vedea c am ini ializat stringul "n e'emplul de mai sus prin introducerea unui anumit numr de
caractere goale la "nceputul i sfr itul stringului. *aide i s vedem rezultatul acestei metode:
eturn 6alue 0elome to ademy
&up cum pute i vedea, am ob inut un string ;trunciat; la ie ire, un string fr spa ii goale la "nceput i la
sfr it.
ceast metod se folose te adesea pentru validarea unei introduceri de client, mai ales "n aplica iile
eteans:
17.2 Metoda indexOf
index!(int ch)? "n cazul "n care metoda accept un caracter ca parametru, aceasta "i
returneaz inde'ul "n cadrul stringului@ s nu v induc "n eroare faptul c a teapt o valoare de tip int ca
parametru de intrare@ fiecare caracter are un anumit cod "n U>A(0&care "l reprezint@ de e'emplu,
http://www1.link-elearning.com/linkdl/opisPojma.php?id=133290http://www1.link-elearning.com/linkdl/opisPojma.php?id=133290http://www1.link-elearning.com/linkdl/opisPojma.php?id=133290 -
7/25/2019 Modul 5 - 5.17 Stringurile
6/16
caracterul == are valoarea zecimal BC "n U>A(0&, a adar putem transmite att valoarea "ntreag a
codului, ct i caracterul "nsu i@ "n cazul "n care caracterul nu este gsit "n cadrul stringului, func ia va
returna #1
index!(String str)? func ia caut dac stringul transmis este localizat "ntr#un alt string@ func ia returneaz ca valoare inde'ul de unde "ncepe stringul dorit@ dac stringul nu este gsit, func ia va returna
#1
index!(String str" int !rom#ndex)? aceast metod func ioneaz la fel ca cea anterioar, cu
e'cep ia faptului c stringul transmis va fi cutat de la inde'ul transmis "n raport cu parametrul fromAnde'@
dac stringul nu este gsit, func ia returneaz #1
index!(int ch" int !rom#ndex)? similar cu func ia anterioar, aceast func ie caut caracterul
transmis "n cadrul stringului, cu e'cep ia faptului c "ncepe cutarea de la inde'ul marcat cu parametrul
fromAnde'
5entru a clarifica, aide i s privim urmtorul e'emplu:
1
2
3
45
6
7
8
9
10
11
12
13
14
15
16
17
u$listati/oidmain(String&' args) -
String str = "elome to ademy";
String su$Str1 = "ademy";
String su$Str2 = "ademy.om";
System.out.rint(":ound nde 0");
System.out.rintln(str.inde9*(
-
7/25/2019 Modul 5 - 5.17 Stringurile
7/16
:ound nde 0?1
:ound nde 0?1
charAt()
ceast metod returneaz un caracter care se afl la un anumit inde' "n cadrul stringului. Sinta'a
acestei metode arat astfel:
u$li %ar %art(int inde)
&up cum putem vedea, aceast metod necesit ca parametru o valoare de tip int ce reprezint inde'ul
caracterului i returneaz o valoare de tip car. S privim utilizarea acestei metode "ntr#un e'emplu:
1
2
3
4
5
u$listati/oidmain(String&' args) -
String s = "%is is string";
%arresult = s.%art(@);System.out.rintln(result);
-a ie ire vom ob ine valoarea DsD, deoarece caracterul DsD se afl localizat pe pozi ia E. corda i aten ie
faptului c inde'area irurilor "ncepe de la zero 3F, a adar al noulea caracter se afl pe pozi ia inde'ului
E 3ciar i un spa iu gol reprezint un caracter.
su$string()
ceast metod are dou varia ii, "n func ie de parametrii de intrare:
# public String substring3int beginAnde'
# public String substring3int beginAnde', int endAnde'
ceste metode e'trag un anumit string dintr#un string e'istent. ste logic ca aceste metode s aib o
valoare de tip string ca valoare de returnare.
5rima metod accept doar un parametru care marceaz "nceputul unui nou string. cest lucru
"nseamn c noul string va fi creat de la inde'ul specificat pn la finalul stringului surs.
doua metod ob ine i inde'ul de final, pe lng inde'ul ini ial, a adar noul string va fi alctuit din caracterele aflate "ntre ace ti indec i, inclusiv ace ti indec i.
*aide i s vedem cum se utilizeaz aceast metod "n ambele variante:
1
2
3
u$listati/oidmain(String&' args) -
String str = "elome to ademy";
-
7/25/2019 Modul 5 - 5.17 Stringurile
8/16
4
5
6
7
8
9
10
System.out.rint("eturn 6alue 0");
System.out.rintln(str.su$string(1+));
System.out.rint("eturn 6alue 0");
System.out.rintln(str.su$string(1+ 14));
-a ie ire vom ob ine acest rezultat:
eturn 6alue 0 ademy
eturn 6alue 0
e%uals()
8etoda eGual se folose te pentru a verifica egalitatea a dou stringuri. *aide i s privim un e'emplu:
1
2
3
4
5
6
7
8
9
10
11
u$listati/oidmain(String&' args) -
String str1 = ":irst /alue";
String str2 = "Seond /alue";
String str3 = newString(":irst /alue");
String str4 = newString("Seond /alue");
$ooleanret6al = str1.eAuals(str3);
System.out.rintln(ret6al);
ret6al = str1.eAuals(str2);
System.out.rintln(ret6al);
)n codul de mai sus, am declarat patru variabile de tip string, unde primul i al treilea, i al doilea i al
patrulea au aceea i valoare. 5rimele dou valori sunt create implicit, iar celelalte dou valori e'plicit.
8etoda eGuals returneaz valori de tip boolean 3true sau false ca rezultat al procesrii sale. -a ie ire
vom ob ine urmtorul rezultat:
true
*alse
(oncluzia este c, indiferent de metoda "n care am creat o valoare te'tual, dac utilizm metoda eGuals,
vom ob ine "ntotdeauna o valoare de returnare ce corespunde cu realitatea.
5entru a compara stringurile, putem utiliza caracterul pentru egalitate logic3$$. (u toate acestea,
abordarea men ionat nu este recomandat, fiindc "n acest mod, comparm doar adresele unde aceste
dou obiecte sunt localizate, avnd "n vedere c o variabil pstreaz valoarea adresei unui obiect.
8etoda eGuals compar stringurile caracter cu caracter, ceea ce este cea mai bun metod de
comparare a stringurilor.
-
7/25/2019 Modul 5 - 5.17 Stringurile
9/16
*aide i s privim urmtorul e'emplu, unde compara iile utiliznd ambele metode vor da rezultate diferite,
de i stringurile pe care le comparm sunt identice:
1
2
3
4
5
6
7
u$listati/oidmain(String&' args) -
String str1 = ":irst /alue";
String str2 = newString(":irst /alue");
System.out.rintln(str1.eAuals(str2));
System.out.rintln(str1 == str2);
ezultatul la ie ire va fi acesta:
true
*alse
5rima variabil te'tual str1 a fost creat implicit i, prin urmare, a fost stocat "n (ommon pool, "n timp
ce a doua variabil str2 este de fapt un obiect stocat "n eap. ariabilele str1 i str2 con in doar adresele valorilor propriu#zise. cesta este motivul pentru care compara ia fcut cu operatorul de compara ie nu
d rezultatele a teptate, fiindc operatorul compar de fapt dou adrese. Utilizarea metodei eGuals d
rezultatele a teptate, avnd "n vedere c stringurile sunt comparate caracter cu caracter.
starts&ith()
ceast metod are dou varia ii, "n func ie de parametrii de intrare:
public boolean starts
-
7/25/2019 Modul 5 - 5.17 Stringurile
10/16
9
10
11
12
13
14
15
16
17
18
System.out.rintln(str.startsit%("ademy" 11));
*ter t%is we get t%e *ollowing outut0
,san style="*ont?*amily0
-
7/25/2019 Modul 5 - 5.17 Stringurile
11/16
String word = "??Hello??";
System.out.rintln(word.relae("?" "D"));
(odul de mai sus va produce urmtorul rezultat:
DDHelloDD
split()
)ntregul con inut al unui string este tratat "n mod egal, indiferent de caracteristici. >umerele i literele sunt
egale, literele i caracterele sunt egale etc. cesta este motivul pentru care o problem des "ntlnit "n
lucrul cu stringurile este identificarea i izolarea unui anumit element sau a unui ir de elemente. 5rin
utilizarea metodei split3, putem "mpr i un string "ntr#un ir de substringuri. 8etoda split3 are urmtorul
format:
u$li String&' slit(String rege)
u$li String&' slit(String rege int limit)
5utem vedea c metoda split poate accepta unul sau doi parametri i c are o func ie diferit "n func ie de
numrul de parametri. )n primul caz, metoda accept un parametru de tip string. cest parametru
reprezint stringul "n func ie de care stringul surs va fi "mpr it. l doilea parametru pe care aceast
metod "l poate accepta se refer la numrul ma'im de elemente ale irului final. (u acest parametru, noi
am definit de fapt numrul ma'im de cuvinte "n care stringul surs va fi "mpr it. *aide i s privim un
e'emplu practic de utilizare a metodei split, astfel "nct totul s devin mai clar:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
u$listati/oidmain(String&' args) -
String str = "elome?to?ademy";
System.out.rintln("eturn 6alue 0");
String&' wordrray1 = str.slit("?");
*or(inti = +; i , wordrray1.lengt%; i) -
System.out.rintln(wordrray1&i');
System.out.rintln("eturn 6alue 0");
String&' wordrray2 = str.slit("?" 2);
*or(inti = +; i , wordrray2.lengt%; i) -System.out.rintln(wordrray2&i');
om ob ine urmtorul rezultat:
-
7/25/2019 Modul 5 - 5.17 Stringurile
12/16
eturn 6alue 0
elome
to
ademy
eturn 6alue 0
elome
to?ademy
)n prima parte, am utilizat metoda split cu caracterul=#= transmis. )mpr irea se va face pe baza acestui
criteriu, astfel "nct vom ob ine H cuvinte la ie ire 3noul ir creat va avea trei elemente. (nd am utilizat
metoda split pentru a doua oar, am e'pediat de asemenea i al doilea parametru care se refer la
numrul ma'im de elemente ale irului ce pot s apar. &in acest motiv, irul creat are dou elemente
3tot ce a rmas de la prima "mpr ire a devenit un string, respectiv un element al irului. )nc nu am
discutat despre iruri i nu este posibil s e'plicm acest e'emplu fr utilizarea irurilor. &espre iruri
vom discuta mai trziu "n acest modul. &e asemenea, "n acest e'emplu am utilizat o bucl for pentru a
trece prin toate elementele irurilor create i pentru a le afi a la ie ire.
'emplul de mai sus se refer la utilizarea metodei split, cnd am utilizat un singur caracter ca criteriu de
"mpr ire. *aide i s vedem cum putem face "mpr irea "n func ie de mai multe criterii:
1
2
3
4
5
6
7
8
9
u$listati/oidmain(String&' args) -
String str = "%is is a sentene. %is is a Auestion rig%tE Fes! t
is.";
System.out.rintln("eturn 6alue 0");
String&' wordrray = str.slit("& .E!'");
*or(inti = +; i , wordrray.lengt%; i) -
System.out.rintln(wordrray&i');
om ob ine urmtorul rezultat:
eturn 6alue 0
%is
is
a
sentene
%is
isa
Auestion
rig%t
Fes
t
s
-
7/25/2019 Modul 5 - 5.17 Stringurile
13/16
&in e'emplul de mai sus putem e'trage concluzia c putem specifica mai multe caractere ca parametru
ce reprezint criteriul de "mpr ire. Ioate caracterele "n func ie de care dorim s facem "mpr irea sunt
plasate "ntre paranteze ptrate, la fel ca "n codul de mai sus. 5robabil v "ntreba i de ce avem caracterul
% "n afara parantezelor ptrate. Se poate "ntmpla ca stringul susrs s aib dou caractere de "mpr ire
identice, unul dup cellalt. -a fel ca "n e'emplul nostru: avem un spa iu dublu "n dou locuri. Semnul
plus ne permite s tratm astfel de caractere de "mpr ire continue ca i cum ar fi un singur caracter.
)ncerca i s scoate i caracterul % din e'presia de mai sus, porni i aplica ia i verifica i ce ob ine i la ie ire.
Ce metod' ar tre$ui s' utiliz'm dac' dorim s' nl'tur'm caracterele goale de la nceputul i s!r itul unui
string*
trim3
split3
cart3
lengt3
xerci ii
Exerci iul 1
)n aplica ie intr o secven de stringuri. &imensiunea permis a acestor stringuri la ie ire este de 2C de
caractere, "ns unele dintre ele sunt mai mari de att la ie ire. (rea i un program care, atunci cnd un
string dep e te dimensiunea de 2C de caractere, va "ntrerupe stringul i va introduce trei puncte "n locul
ultimelor trei caractere. Stringurile astfel procesate trebuie afi ate la ie ire.
Antrarea programului:
1
2
3
4
String&' tets =
- "9timum H o* your water is $etween G.+ and .+. Howe/er 9sars are oIay in
"%e 9sar *is% is not a di**iult *is% to looI a*ter i* you gi/e it a suita$
9sar in an unsuita$ly small tanI or *eed it on a oor diet"
"%e 9sar %as t%e otential to rea% 1@ in%es. Howe/er in ati/ity 9sars
Solu ie:
1
2
3
4
5
6
7
8
9
String&' tets =
- "9timum H o* your water is $etween G.+ and .+. Howe/er 9sars are oIay i
"%e 9sar *is% is not a di**iult *is% to looI a*ter i* you gi/e it a suita9sar in an unsuita$ly small tanI or *eed it on a oor diet"
"%e 9sar %as t%e otential to rea% 1@ in%es. Howe/er in ati/ity 9sars
*or(inti=+;i,tets.lengt%;i)
-
i*(tets&i'.lengt%()B25)
-
String tmt = tets&i'.su$string(+22);
tmt = tmt.onat("...");
-
7/25/2019 Modul 5 - 5.17 Stringurile
14/16
1
0
11
1
2
1
3
1
4
System.out.rintln(tmt);
Exerci iul 2
)n aplica ie intr o list de fi iere sub forma unui string. Irebuie recunoscute doar fi ierele de tip pg, png
sau gif 3prin utilizarea e'tensiilor acestora i afi at un mesa despre tipul lor la ie ire:
6i ierul: picture1.pg este de tip pg
6i ierul: picture2.png este de tip png
6i ierul: pictureH.gif este de tip gif
5arametrul de intrare:
String&' *iles = - "iture1.Jg" "tet1.tt" "iture2.ng" "tet2.do"
"iture3.gi*" ;
Solu ie:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
String&' *iles =
- "iture1.Jg"
"tet1.tt"
"iture2.ng" "tet2.do"
"iture3.gi*";
*or(inti=+;i,*iles.lengt%;i)
-
i*(*iles&i'.endsit%(".Jg"))
System.out.rintln(":aJl0 " *iles&i' " is o* Jg tye"
);
i*(*iles&i'.endsit%(".gi*"))
System.out.rintln(":aJl0 " *iles&i' " is o* gi* tye"
);
i*(*iles&i'.endsit%(".ng"))
System.out.rintln(":aJl0 " *iles&i' " is o* ng tye"
);
Sau:
1
2
3
4
String&' *iles =
- "iture1.Jg"
"tet1.tt"
"iture2.ng"
"tet2.do"
-
7/25/2019 Modul 5 - 5.17 Stringurile
15/16
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
"iture3.gi*";
String&' ermited8tensions = -"Jg""gi*""ng";
*or(inti=+;i,*iles.lengt%;i)
-
String *ile8t = *iles&i'.slit("KK.")&1';
*or(intu = +;u,ermited8tensions.lengt%;u)
-
i*(ermited8tensions&u'.eAuals(*ile8t))
System.out.rintln(":aJl0 " *iles&i' " Je tia "
*ile8t );
Exerci iul 3
&atele intr "n aplica ie prin intermediul urmtorului string:
String users = "*irstLame0 6ladimirlastLame0 6ladimiro/i*irstLame0 No/an
lastLame0 No/ano/i*irstLame0 OetarlastLame0 Oetro/i";
6ormata i datele astfel "nct s ob ine i urmtoarea ie ire:
user *irst name is 0 6ladimir user last name is 0 6ladimiro/i
Solu ie:
1
2
3
4
5
6
7
8
String users = "*irstLame0 6ladimirlastLame0 6ladimiro/i*irstLame0 No/anlast
Oetro/i";
String&' usersrray = users.slit("KK");
*or(inti=+;i,usersrray.lengt%;i=2)
-
String *irstLame = usersrray&i'.slit(" ")&1';
String lastLame = usersrray&i1'.slit(" ")&1';
System.out.rintln("user *irst name is 0 " *irstLame " user last nam
Exerci iul 4
&atele intr "n aplica ie prin intermediul urmtoarelor dou stringuri:
1
2
String&' *or$iden%ars = - ",""B""
-
7/25/2019 Modul 5 - 5.17 Stringurile
16/16
1
2
3
4
5
6
7
8
String&' *or$iden%ars = - ",""B""