You are on page 1of 19

Stringovi, nizovi i

kolekcije
Pregled
 Stringovi
 .NET Framework Nizovi
 .NET Framework kolekcije
Stringovi
 Parse
 Formatiranje
 Velika i mala slova
 Compare
 Trim i Pad
 Split i Join
 StringBuilder
 C# specifičnosti
Parse
 Metoda Parse konvertuje numerički string u broj
string MyString = "12345";
int MyInt = int.Parse(MyString);
MyInt++;
Console.WriteLine(MyInt);
// The output to the console is "12346".

 Da bi se ignorisale zapete koristi se fleg


NumberStyles.AllowThousands
string MyString = "123,456";
int MyInt = int.Parse(MyString,
System.Globalization.NumberStyles.AllowThousands);
Console.WriteLine(MyInt);
// The output to the console is "123456".
Primeri formatiranja
 “Currency” format – predstavljanje novčanih
vrednosti
 C - $XX,XXX.XX

int MyInt = 12345;


string MyString = MyInt.ToString("C" );
// In the U.S. English culture: "$12,345.00"
 Format za datum i vreme
 D - dd MMMM yyyy

 d - MM/dd/yyyy

DateTime MyDate = new DateTime(2000, 1, 10, 0, 0, 0);


 string MyString = MyDate.ToString( "d" );
// In the U.S. English culture: "1/10/2000"
Velika i mala slova

 String.ToUpper – konvertuje sva slova u


velika
string MyString = "hello world!";
// outputs: HELLO WORLD!
Console.WriteLine(MyString.ToUpper());
 String.ToLower – konvertuje sva slova u
mala
string MyString = "HELLO WORLD!";
// outputs: hello world!
Console.WriteLine(MyString.ToLower());
Compare
 Statička metoda za poređenje stringova
 Na primer, Compare metod poredi dva
objekta klase string i vraća:
 - negativan broj ako je prvi string manji

 - 0 ako su stringovi jednaki

 - pozitivan broj ako je prvi string veći od

drugog
string MyString = "Hello World!";
Console.WriteLine(
String.Compare(MyString,"Hello World!"));
// outputs: 0
Metode Trim i Pad
 Trim metoda izbacuje prazna mesta
string MyString = " Big ";
Console.WriteLine("Hello{0}World!", MyString );
string TrimString = MyString.Trim();
Console.WriteLine("Hello{0}World!", TrimString );
// outputs the following lines to the console:
//Hello Big World!
//HelloBigWorld!
 Pad metoda multiplicira karakter određeni broj
puta
string MyString = "Hello World!";
Console.WriteLine(MyString.PadLeft(20, '-'));
// outputs the following line to the console:
//--------Hello World! to the console.
Metode Split i Join
 Split metoda deli string u niz stringova
 String se seče na mestima na kojima se nalazi
prosleđeni separator
 Ako je separator vrednost null onda se blanko
karakteri proglašavaju za separatore
string Line = "Hello World";
string[] Words = Line.Split(null);
// Words[0] = "Hello" and Words[1] = "World"

 Join metoda služi za konkatenaciju stringova


 Umeće prosleđeni separator između
elemenata prosleđenog niza stringova
Klasa StringBuilder
 Objekat klase string je nepromenljiv
 System.Text.StringBuilder – omogućava
promenu stringa bez kreiranja novog objekta
StringBuilder MyStringBuilder = new StringBuilder("Hello");

 Može se specificirati maksimalan broj karaktera


// MyStringBuilder can hold a maximum of 25 characters
StringBuilder MyStringBuilder =
new StringBuilder("Hello World!", 25);

 Poseduje metode:
 Append, AppendFormat, Insert, Remove,
i Replace
Specifičnosti jezika C#
 C# string je niz Unicode karaktera
 String je alias za System.String
 Operatori == i != upoređuju vrednosti, a ne reference
string objekata
 + operator služi za konkatenaciju stringova
string a = "\u0068ello ";
string b = "world";
Console.WriteLine( a + b == "hello world" );//True
 [ ] operator omogućuje pristup pojedinim
karakterima u stringu
char x = "test"[2]; // x = 's';

 “@-quoting” služi da se izbegnu tzv. “escape”


sekvence
@"c:\Docs\Source\a.txt"
// rather than "c:\\Docs\\Source\\a.txt"
.NET Framework nizovi
 System.Array
 Specifičnosti jezika C#
 Pregled članova niza “Iterating Over“
 Poređenje
 Sortiranje
Klasa System.Array
 System.Array je bazna klasa za sve nizove
 Nizovi implementiraju sledeće interfejse
 ICloneable, IList, ICollection i IEnumerable

 System.Array ima metode za:


 Kreiranje, manipulaciju, pretraživanje i
sortiranje nizova
 Vrednost Null, prazan string i prazan niz se
tretiraju na isti način
Specifičnosti jezika C#
 Indeksi u nizovima počinju od 0
 Deklarisanje niza, bez određivanja veličine
int[] numbers; // declare numbers as
// an int array of any size

 Kreiranje niza
int[] numbers = new int[5]; // declare and create

 Inicijalizacija niza
int[] numbers = new int[5] {1, 2, 3, 4, 5};

 Korišćenje članova klase System.Array


int[] numbers = {1, 2, 3, 4, 5};
int LengthOfNumbers = numbers.Length;
“Iterating Over”
 Klase System.Array i System.Collections Classes
implementiraju interfejs IEnumerable i njegovu
metodu GetEnumerator
 Članovi interfesa IEnumerator su:
 MoveNext, Reset i Current

int[] numbers = new int[5] {1, 2, 3, 4, 5};


IEnumerator e = numbers.GetEnumerator();
while (e.MoveNext()) {
Console.WriteLine("Number: {0}", (int)e.Current);
}
// alternatively
foreach (int i in numbers)
{
   Console.WriteLine("Number: {0}", i);
}
Poređenje
 Za operacije Sort i Search, nizovi moraju biti u stanju da porede članove.
Metod Compare interfejsa IComparer koji poredi dva objekta bilo kog tipa
 Klasa Comparer je osnovna implementacija interfejsa IComparer
 Njena Compare metoda koristi IComparable.CompareTo
int CompareTo( object anObject );

int Compare( object x, object y );


 CompareTo vraća

Value Meaning
Less than zero Instance is less than object
Zero Instance is equal to object
Greater than zero Instance is greater than object
Sortiranje
 Sort metod koristi IComparable.CompareTo
Array.Sort( anArray );

 IComparable.CompareTo Design Pattern


public int CompareTo(Object anObject) {
if ( anObject == null) return 1;
  if ( !(anObject is <classname>) ) {
throw new ArgumentException(); }
  // Do comparison and return a
// negative integer if instance < anObject
// 0 if instance == anObject
// positive integer if instance > anObject
}
.NET Framework
 Klase iz System.Collections
 Liste
 Rečnici
 Klasa SortedList
 Preporuke
 “Type Safety” i “Performance”
Klase iz System.Collections
 ArrayList
 Implementira dinamički niz promenljive
veličine implementirajući IList
 DictionaryBase
 Apstraktna klasa za sve klase koje
implementiraju “key – value” klase
 Hashtable
 SortedList
 BitArray, Queue, Stack, CollectionBase,
ReadOnlyCollectionBase

You might also like