You are on page 1of 18

Računarski praktikum 3

Vježbe 06
Vinko Petričević

Stringovi
String

public sealed class String :


IComparable<T>, ICloneable, IConvertible, IEnumerable<T>

 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

string s = “Ovo je neki string”;

string s1 = “Ovo je prijelaz u novi red\n”;

string s2 = @”A ovo nije \n”;

string path = @”c:\dokumenti\datoteka.txt”;

string tekst = @"prvi redak


drugi redak
treći redak";
Metode stringa
 Chars – Indekser niza znakova.
 Compare() – Preopterećena javna statička metoda koja uspoređuje dva niza
znakova.
 CompareOrdinal() – Preopterećena javna statička metoda koja uspoređuje
dva niza znakova bez obzira na lokacijske ili kulturološke postavke.
 CompareTo() – 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.
 CopyTo() – 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 i metoda instance koja
utvrđuje imaju li dva niza znakova istu vrijednost.
Metode stringa
 EndsWith() – 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.
 IndexOf() – 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 znak-
separator i polje nizova znakova vraća jedinstven niz znakova
sastavljen od elemenata polja spojenih znakom-separatorom.
 LastIndexOf() – Daje indeks posljednje pojave određenog znaka ili niza
znakova unutar pozivajućeg niza znakova.
 Length – Broj znakova u instanci.
Metode stringa
 PadLeft() – Znakove u nizu popunjava desno, dok lijevu stranu popunjava
razmacima ili zadanim znakom.
 PadRight() – 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.
 StartsWith() – Označava počinje li niz zadanim znakom.
 Substring() – Dohvaća podniz znakova.
 ToCharArray() – Kopira znakove iz niza znakova u polje znakova.
 ToLower() – Vraća kopiju niza znakova napisanu malim slovima.
 ToUpper() – Vraća kopiju niza znakova napisanu velikim slovima.
 Trim() – Uklanja sve pojave skupa zadanih znakova s početka i završetka niza
znakova.
 TrimEnd() – Ponaša se kao Trim(), ali samo na završetku niza znakova.
 TrimStart() – Ponaša se kao Trim(), ali samo na početku niza znakova.
Primjer 1
string s1 = "abcd";
string s2 = "ABCD";
string s3 = "Danas radimo s nizovima znakova.";

int rezultatUsporedbe;
 
// Usporedba koja razlikuje valika i mala slova
rezultatUsporedbe = string.Compare(s1, s2);
Console.WriteLine("Usporedba s1 = {0}, s2 = {1}, rezultat: {2}",
s1, s2, rezultatUsporedbe);
 
// Usporedba koja ignorira velika i mala slova
rezultatUsporedbe = string.Compare(s1, s2, true);
Console.WriteLine("Usporedba (ignorira velika i mala slova): {0} i {1}: {2}",
s1, s2, rezultatUsporedbe);
 
// Spajanje dva niza znakova
string s4 = string.Concat(s1, s2); // ili s4=s1+s2;
Console.WriteLine("s1 spojeno s s2: {0}", s4);
// Kopiranje niza znakova
string s6 = string.Copy(s1); // ili s6 = s1;
Console.WriteLine("s6 kopiran iz s1: {0}", s6);
 
// Tri načina za uspoređivanje nizova znakova
Console.WriteLine("s7.Equals(s1): {0}", s7.Equals(s1));
Console.WriteLine("Equals(s7, s1): {0}", string.Equals(s7, s1));
Console.WriteLine("s7 == s1: {0}", s7 == s1);
 
// Duljina i index svojstva
Console.WriteLine("Duljina s1: {0}", s1.Length);
Console.WriteLine("Drugi znak u s1: {0}", s1[1]);
 
Console.WriteLine(); Console.WriteLine("s3: {0}", s3);
 
// Testira završava li niz sa skupom znakova
Console.WriteLine("s3 završava sa \"znakova\": {0}",
s3.EndsWith("znakova"));
Console.WriteLine("s3 završava sa \"znakova.\": {0}",
s3.EndsWith("znakova."));
 
// Vraća indeks podniza
int indeksPodniza = s3.IndexOf("radimo");
Console.WriteLine("Prva pojava \"radimo\" u s3: {0}", indeksPodniza);
 
// U s3 umećemo riječ "intenzivno" prije "radimo“
string s8 = s3.Insert(indeksPodniza, "intenzivno ");
Console.WriteLine("s8: {0}", s8);
Primjer 2
 string s = "Jedan Dva Tri Četiri";
 
while (s.Length > 0) {
// tražimo zadnji razmak u nizu znakova
int indeksRazmaka = s.LastIndexOf(" ");
//Ako razmak postoji
if (indeksRazmaka >= 0) {
// ispisujemo zadnju riječ
string zadnjaRijec = s.Substring(indeksRazmaka + 1);
Console.WriteLine(zadnjaRijec);
  // uzimamo podniz koji sadrži sve osim zadnje riječi
s = s.Substring(0, indeksRazmaka);
}
else {
// inače je ovo zadnja preostala riječ
// ispisujemo ju i praznimo niz znakova
Console.WriteLine(s);
s = "";
}
}
Zadatak 1
 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
 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.WriteLine(rijeci[i]);
}
StringBuilder
 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

 StringBuilder se može mijenjati


StringBuilder – važnije metode
 Append() – Preopterećena javna metoda koja niz znakova dodaje
na završetak trenutnog StringBuilder.
 AppendFormat() – 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 StringBuilder.
 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 StringBuilder
StringBuilder izlaz = new StringBuilder();
 
// dodajemo izdvojene riječi obrnutim redoslijedom
for (int i = rijeci.Length - 1; i >= 0; i--)
{
izlaz.AppendFormat("{0}: {1}\n", i, rijeci[i]);
}
 
// Ispisujemo objekt izlaz
Console.WriteLine(izlaz);
Regularni izrazi
 .net ima ugrađenu podršku za prepoznavanje
regularnih izraza
string s = "Jedan Dva,Tri, Četiri";
 
// instanciramo novi objekt klase Regex
Regex regularniIzraz = new Regex(" |, |,");

// metoda Split() objekta klase Regex dijeli niz znakova na podnizove


string[] rijeci = regularniIzraz.Split(s);
 
StringBuilder izlaz = new StringBuilder();
 
for (int i = rijeci.Length - 1; i >= 0; i--)
izlaz.AppendFormat("{0}: {1}\n", i, rijeci[i]);
 Console.WriteLine(izlaz);
Regularni izrazi
 .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, " |, |,");
 
StringBuilder izlaz = new StringBuilder();
 
for (int i = rijeci.Length - 1; i >= 0; i--)
izlaz.AppendFormat("{0}: {1}\n", i, rijeci[i]);
 Console.WriteLine(izlaz);

You might also like