Raunarski praktikum 3 Vjebe 06 Vinko Petrievi Stringovi
Računarski praktikum 3 Vježbe 06 Vinko Petričević Stringovi
String public sealed class String : IComparable<T>, ICloneable, IConvertible, IEnumerable<T> l l l moguće ih je sortirati (uzimaju se u obzir kulturološke informacije) moguće je sa foreach naredbom proći po svim znakovima stringa moguće je klonirati string i tako dobiti novi string s istom vrijednošću
String s = “Ovo je neki string”; string s 1 = “Ovo je prijelaz u novi redn”; string s 2 = @”A ovo nije n”; string path = @”c: dokumentidatoteka. txt”; string tekst = @"prvi redak drugi redak treći redak";
Metode stringa l l l l l Chars – Indekser niza znakova. Compare() – Preopterećena javna statička metoda koja uspoređuje dva niza znakova. Compare. Ordinal() – Preopterećena javna statička metoda koja uspoređuje dva niza znakova bez obzira na lokacijske ili kulturološke postavke. Compare. To() – Niz znakova uspoređuje s drugim nizom. Concat() – Preopterećena javna statička metoda koja iz jednog ili više nizova znakova stvara novi niz. Copy() – Preopterećena javna statička metoda koja novi niz znakova stvara kopiranjem drugog niza znakova. Copy. To() – Kopira zadani broj znakova u polje Unicode znakova. Empty – Javno statičko polje koje predstavlja prazan niz znakova. Equals() – Preopterećena javna statička metoda instance koja utvrđuje imaju li dva niza znakova istu vrijednost.
Metode stringa l l l l Ends. With() – Vraća true u slučaju da pozivajući niz znakova završava zadanim nizom, inače vraća false. Format() – Preopterećena javna statička metoda koja formatira niz znakova pomoću specifikacije formata. Index. Of() – Vraća poziciju prvog pojavljivanja zadanog niza znakova unutar pozivajućeg niza. Insert() – Vraća novi niz znakova s umetnutim zadanim nizom znakova. Join() – Preopterećena javna statička metoda koja za zadani znakseparator i polje nizova znakova vraća jedinstven niz znakova sastavljen od elemenata polja spojenih znakom-separatorom. Last. Index. Of() – Daje indeks posljednje pojave određenog znaka ili niza znakova unutar pozivajućeg niza znakova. Length – Broj znakova u instanci.
Metode stringa l l l Pad. Left() – Znakove u nizu popunjava desno, dok lijevu stranu popunjava razmacima ili zadanim znakom. Pad. Right() – Znakove u nizu popunjava lijevo, dok desnu stranu popunjava razmacima ili zadanim znakom. Remove() – Briše zadani broj znakova. Split() – Vraća podnizove odvojene određenim znakovima u polju niza znakova. Starts. With() – Označava počinje li niz zadanim znakom. Substring() – Dohvaća podniz znakova. To. Char. Array() – Kopira znakove iz niza znakova u polje znakova. To. Lower() – Vraća kopiju niza znakova napisanu malim slovima. To. Upper() – Vraća kopiju niza znakova napisanu velikim slovima. Trim() – Uklanja sve pojave skupa zadanih znakova s početka i završetka niza znakova. Trim. End() – Ponaša se kao Trim(), ali samo na završetku niza znakova. Trim. Start() – Ponaša se kao Trim(), ali samo na početku niza znakova.
Primjer 1 string s 1 = "abcd"; string s 2 = "ABCD"; string s 3 = "Danas radimo s nizovima znakova. "; int rezultat. Usporedbe; // Usporedba koja razlikuje valika i mala slova rezultat. Usporedbe = string. Compare(s 1, s 2); Console. Write. Line("Usporedba s 1 = {0}, s 2 = {1}, rezultat: {2}", s 1, s 2, rezultat. Usporedbe); // Usporedba koja ignorira velika i mala slova rezultat. Usporedbe = string. Compare(s 1, s 2, true); Console. Write. Line("Usporedba (ignorira velika i mala slova): {0} i {1}: {2}", s 1, s 2, rezultat. Usporedbe); // Spajanje dva niza znakova string s 4 = string. Concat(s 1, s 2); // ili s 4=s 1+s 2; Console. Write. Line("s 1 spojeno s s 2: {0}", s 4);
// Kopiranje niza znakova string s 6 = string. Copy(s 1); // ili s 6 = s 1; Console. Write. Line("s 6 kopiran iz s 1: {0}", s 6); // Tri načina za uspoređivanje nizova znakova Console. Write. Line("s 7. Equals(s 1): {0}", s 7. Equals(s 1)); Console. Write. Line("Equals(s 7, s 1): {0}", string. Equals(s 7, s 1)); Console. Write. Line("s 7 == s 1: {0}", s 7 == s 1); // Duljina i index svojstva Console. Write. Line("Duljina s 1: {0}", s 1. Length); Console. Write. Line("Drugi znak u s 1: {0}", s 1[1]); Console. Write. Line("s 3: {0}", s 3); // Testira završava li niz sa skupom znakova Console. Write. Line("s 3 završava sa "znakova": {0}", s 3. Ends. With("znakova")); Console. Write. Line("s 3 završava sa "znakova. ": {0}", s 3. Ends. With("znakova. "));
// Vraća indeks podniza int indeks. Podniza = s 3. Index. Of("radimo"); Console. Write. Line("Prva pojava "radimo" u s 3: {0}", indeks. Podniza); // U s 3 umećemo riječ "intenzivno" prije "radimo“ string s 8 = s 3. Insert(indeks. Podniza, "intenzivno "); Console. Write. Line("s 8: {0}", s 8);
Primjer 2 string s = "Jedan Dva Tri Četiri"; while (s. Length > 0) { // tražimo zadnji razmak u nizu znakova int indeks. Razmaka = s. Last. Index. Of(" "); //Ako razmak postoji if (indeks. Razmaka >= 0) { // ispisujemo zadnju riječ string zadnja. Rijec = s. Substring(indeks. Razmaka + 1); Console. Write. Line(zadnja. Rijec); // uzimamo podniz koji sadrži sve osim zadnje riječi s = s. Substring(0, indeks. Razmaka); } else { // inače je ovo zadnja preostala riječ // ispisujemo ju i praznimo niz znakova Console. Write. Line(s); s = ""; } }
Zadatak 1 l l Napišite program koji učitava 2 stringa, te svaku pojavu drugog stringa u prvom premješta na kraj prvog stringa. Na kraju ispisuje dobiveni string kokodako ko dakokoko
Zadatak 2 l l Palindrom je riječ koja se jednako čita od naprijed i od nazad. Napitiše program koji učitava string s tastature, te ispisuje koliko različitih palindromaa taj string sadrži
Primjer 3 string s = "Jedan Dva, Tri Četiri"; // definiramo niz graničnika koji razgraničuju riječi char[] granicnici = new char[] { ' ', ', ' }; // metoda Split() dijeli niz znakova na podnizove string[] rijeci = s. Split(granicnici); // ili s. Split(' ', ', '); // nizove ispisujemo obrnutim redoslijedom for (int i = rijeci. Length - 1; i >= 0; i--) { Console. Write. Line(rijeci[i]); }
String. Builder l string je nepromijenjivi niz znakova. Prilikom svake izmijene se kreira kopija na kojoj se mijenja, a stari string ostaje u memoriji nepromijenjen i čeka sakupljanje otpada l String. Builder se može mijenjati
String. Builder – važnije metode l l l l Append() – Preopterećena javna metoda koja niz znakova dodaje na završetak trenutnog String. Builder. Append. Format() – Preopterećena javna metoda koja specifikatore formata zamjenjuje formatiranom vrijednosti objekta. Chars – Indekser. Insert() – Preopterećena javna metoda koja na zadani položaj umeće niz znakova. Length – Vraća ili postavlja duljinu String. Builder. Remove() – Uklanja zadane znakove. Replace() – Preopterećena javna metoda koja sve instance zadanih znakova zamjenjuje novim znakovima.
Primjer 4 string s = "Jedan Dva, Tri, Četiri"; char[] granicnici = new char[] { ' ', ', ' }; string[] rijeci = s. Split(granicnici); // Kreiramo novi objekt klase String. Builder izlaz = new String. Builder(); // dodajemo izdvojene riječi obrnutim redoslijedom for (int i = rijeci. Length - 1; i >= 0; i--) { izlaz. Append. Format("{0}: {1}n", i, rijeci[i]); } // Ispisujemo objekt izlaz Console. Write. Line(izlaz);
Regularni izrazi l . net ima ugrađenu podršku za prepoznavanje regularnih izraza string s = "Jedan Dva, Tri, Četiri"; // instanciramo novi objekt klase Regex regularni. Izraz = new Regex(" |, |, "); // metoda Split() objekta klase Regex dijeli niz znakova na podnizove string[] rijeci = regularni. Izraz. Split(s); String. Builder izlaz = new String. Builder(); for (int i = rijeci. Length - 1; i >= 0; i--) izlaz. Append. Format("{0}: {1}n", i, rijeci[i]); Console. Write. Line(izlaz);
Regularni izrazi l . net ima ugrađenu podršku za prepoznavanje regularnih izraza string s = "Jedan Dva, Tri, Četiri"; // statička metoda Split() klase Regex string[] rijeci = Regex. Split(s, " |, |, "); String. Builder izlaz = new String. Builder(); for (int i = rijeci. Length - 1; i >= 0; i--) izlaz. Append. Format("{0}: {1}n", i, rijeci[i]); Console. Write. Line(izlaz);
- Slides: 18