Modul 5 - 5.17 Stringurile

download Modul 5 - 5.17 Stringurile

of 16

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""