200 likes | 422 Views
Összetett adattípusok. Forrás: Reiter István, C# jegyzet. Tömb. Azonos elemi típusú adatokból tárol többet egy változóban Legfontosabb jellemzője a dimenziószáma: 1 dimenziós: vektor. 2 dimenziós: mátrix. A C# nyelv minden tömb-típusdefiníciót a System.Array osztályból származtat. Tömb.
E N D
Összetett adattípusok Forrás: Reiter István, C# jegyzet
Tömb • Azonos elemi típusú adatokból tárol többet egy változóban • Legfontosabb jellemzője a dimenziószáma: • 1 dimenziós: vektor. • 2 dimenziós: mátrix. • A C# nyelv minden tömb-típusdefiníciót a System.Array osztályból származtat.
Tömb • Az egyes elemekre index segítségével hivatkozhatunk. • Az egyes tömbelemekre való hivatkozás, a tömbök indexelése, mindig 0-val kezdődik. • Az index csak egész típusú lehet.
Tömb definiálása • típus [ ] név; • Pl.: • int [ ] szam; egész számok tömbje • szam=new int [10]; 10 elemű egész tömb • int db=15; szam=new int [db]; db elemszámú egész tömb (változó adja a hosszát)
Tömb definiálása • Ha az elemeket definiáláskor szeretnénk megadni: • int [ ] szam=newint [5] {1;2;3;4;5}; • int [ ] szam=newint[ ] {1;2;3;4;5}; • string[ ] nev=newstring [2] {„Ali”; „Vali”};
Tömb hosszának meghatározása • Pl.: int [ ] szam={1;2;3;4;5}; int hossz=szam.Length;
Több dimenziós tömb • Pl.: int [ , ] matrix=newint [3,3] 3x3-as tömb
Karakterlánc • Definiálása: strings = "ezegystring"; • Egy string egyes betűire az indexelő operátorral hivatkozhatunk (vagyis minden stringet kezelhetünk tömbként is): Console.WriteLine(s[0]); // ‘e’ kiíratása Console.WriteLine(s[1]); // ‘z’ kiíratása
Karakterlánc • A foreach ciklussal indexelő operátor nélkül is végigiterálhatunk a karaktersorozaton: foreach (charchin s) { Console.WriteLine(ch); }
Karakterlánc • Fontos! Amikor egy létező string objektumnak új értéket adunk, akkor nem az eredeti példány módosul, hanem egy teljesen új objektum keletkezik a memóriában (a string ún. immutable – megváltoztathatatlan típus).
String metódusok • Összehasonlítás: A String.Compare metódus nullát ad vissza ha a két string egyenlő, és nullánál kisebbet/nagyobbat, ha nem. Pl.: stringa = "egyik"; stringb = "másik"; int x = String.Compare(a, b); if (x == 0) { Console.WriteLine("A két string egyenlő"); } elseif(x < 0) { Console.WriteLine("Az 'a' a kisebb"); } else { Console.WriteLine("A 'b' a kisebb"); }
String metódusok • Keresés: • IndexOfés LastIndexOf: egy string vagy karakter első illetve utolsó előfordulási indexét (stringek esetén a kezdőindexet) adják vissza. Ha nincs találat, akkor a visszaadott érték -1 lesz. • Any-revégződő változatuk: egy karaktertömböt fogad paramétereként és az abban található összes karaktert próbálja megtalálni. • Contains: igaz értékkel tér vissza, ha a paramétereként megadott karakter(sorozat) benne van a stringben.
String metódusok • Keresésre példa: strings = "verylonglongstring"; char[] c = new char[]{ 'y', 'z', 'o' }; Console.WriteLine(s.IndexOf('r')); // 2 Console.WriteLine(s.IndexOfAny(c)); // 3 Console.WriteLine(s.LastIndexOf('n')); // 16 Console.WriteLine(s.LastIndexOfAny(c)); // 9 Console.WriteLine(s.Contains("long")); // true
String metódusok • Módosítás: • Replace: az első paraméterének megfelelő karaktereket lecseréli a második paraméterre. • Trim: a string elején és végén lévő karaktereket levágja. • Substring: kivág egy karaktersorozatot ( paraméterei a kezdő és végindexek). • Insert/Remove: hozzáadnak, illetve elvesznek a stringből. • ToLowerés ToUpper: kis- illetve nagybetűssé alakítják az eredeti stringet.
String metódusok • Módosításra példa: strings = "smallstring"; char[] c = new char[]{ 's', 'g' }; Console.WriteLine(s.Replace('s', 'l')); // lmallltring Console.WriteLine(s.Trim(c)); // mallstrin Console.WriteLine(s.Insert(0, "one")); // onesmallstring Console.WriteLine(s.Remove(0, 2)); // allstring Console.WriteLine(s.Substring(0, 3)); // sma Console.WriteLine(s.ToUpper()); // SMALLSTRING Console.WriteLine(s.ToLower()); // smallstring