Pole VB.Net: Řetězec, dynamický s PŘÍKLADY
Co je pole?
Pole je datová struktura používaná k ukládání prvků stejného datového typu. Prvky jsou seřazeny sekvenčně, přičemž první prvek je na indexu 0 a poslední prvek na indexu n-1, kde n je celkový počet prvků v poli.
Jak deklarovat a inicializovat pole
In VB.NET, pole jsou deklarována pomocí příkazu Dim. Například:
Dim myData() As Integer
Ve výše uvedeném příkladu jsme definovali pole s názvem myData a mělo by obsahovat prvky datového typu integer. Následující příklad ukazuje, jak můžeme deklarovat pole tak, aby obsahovalo prvky řetězce:
Dim myData(10) As String
Definovali jsme pole s názvem myData, které má obsahovat 10 řetězců.
Pole můžeme inicializovat v okamžiku jejich deklarace. Například:
Dim myData() As Integer = {11, 12, 22, 7, 47, 32}
Deklarovali jsme pole myData a přidali do něj 6 celočíselných prvků. To lze také provést v případě řetězců:
Dim students() As String = {"John", "Alice", "Antony", "Gloria", "jayden"}
Vytvořili jsme pole s názvem studenti a přidali do něj 5 jmen.
Pole s pevnou velikostí
Pole s pevnou velikostí obsahuje pevný počet prvků. To znamená, že během definice musíte definovat počet prvků, které bude obsahovat. Předpokládejme, že potřebujete pole pro uložení pouze 3 jmen studentů. Pole můžete definovat a inicializovat následovně:
Dim students(0 to 2) As String students(0) = "John" students (1) = "Alice" students (2) = "Antony"
Začali jsme deklarováním pole řetězců s názvem studenti. 0 až 2 deklaruje, že pole bude ukládat prvky od indexu 0 do indexu 2, což znamená, že budeme mít celkem 3 prvky.
Pro přidání prvků do pole jsme použili název pole a určili index, pod kterým bude prvek uložen. Například jméno John bude uloženo na indexu 0 pole, což znamená, že bude tvořit první prvek pole. Antony bude posledním prvkem pole.
Dynamická pole
Toto je pole, které může obsahovat libovolný počet prvků. Velikost pole se může kdykoli zvětšit. To znamená, že do pole můžete kdykoli přidat nové prvky. Abychom to demonstrovali, nejprve definujme pole celých čísel:
Dim nums() As Integer
Definovali jsme celočíselné pole s názvem nums. Nyní musíte do pole přidat dva prvky a zároveň dát prostor pro změnu jeho velikosti. Musíte použít příkaz ReDim následovně:
ReDim nums(1) nums(0) = 12 nums(1) = 23
Naše pole má nyní dva prvky v indexech 0 a 1. Potřebujeme k němu přidat třetí prvek na indexu 3 a zároveň zachovat dva prvky, které již má. Můžeme to udělat následovně:
ReDim Preserve nums(2) nums(2) = 35
Pole má nyní tři prvky.
Načtení obsahu pole
Načítání znamená přístup k prvkům pole. Pro přístup k prvku pole používáme jeho index. Ukažme si to na příkladu.
Krok 1) Začněte vytvořením nové konzolové aplikace.
Krok 2) Přidejte do aplikace následující kód:
Module Module1 Sub Main() Dim students(0 to 2) As String students(0) = "John" students(1) = "Alice" students(2) = "Antony" Console.WriteLine("First student is {0} ", students(0)) Console.WriteLine("Second student is {0} ", students(1)) Console.WriteLine("Third student is {0} ", students(2)) Console.ReadKey() End Sub End Module
Krok 3) Spusťte kód kliknutím na tlačítko Start na panelu nástrojů. Zobrazí se následující okno:
Použili jsme následující kód:
Vysvětlení kódu:
- Vytvoření modulu s názvem Module1.
- Vytvoření hlavního dílčího postupu.
- Vytvoření pole s názvem studenti pro uložení prvků řetězce. Pole bude ukládat prvky od indexu 0 do indexu 2, což znamená, že bude mít celkem 3 prvky.
- Přidání jména John jako prvního prvku pole, tj. John uloženého na indexu 0.
- Přidání jména Alice jako druhého prvku pole, to znamená Alice uložené na indexu 1.
- Přidání jména Antony jako třetího prvku pole, to znamená Antony uloženého na indexu 2.
- Tisk nějakého textu a prvku uloženého na indexu 0 studentů pole na konzole. The students(0) nám pomáhá přistupovat k prvku na indexu 0 pole s názvem students.
- Tisk nějakého textu a prvku uloženého na indexu 1 studentů pole na konzole. The students(1) nám pomáhá přistupovat k prvku na indexu 1 pole s názvem students.
- Tisk nějakého textu a prvku uloženého na indexu 2 studentů pole na konzole. The students(2) nám pomáhá přistupovat k prvku na indexu 2 pole s názvem students.
- Pozastavení okna konzoly, které čeká nebo uživatel provede akci k jeho zavření.
- Konec dílčího postupu.
- Konec modulu.
Přidání nových prvků do pole
K tomu dojde pouze v případě, že máte dynamické pole. Pokud jste deklarovali rozměrné pole s pevnou velikostí a je plné prvků pole, nemůžete do něj přidávat nové prvky. Následující příklad ukazuje, jak přidat nové prvky do dynamického pole:
Krok 1) Začněte vytvořením nové konzolové aplikace.
Krok 2) Přidejte do aplikace následující kód:
Module Module1 Sub Main() Dim nums() As Integer ReDim nums(1) nums(0) = 12 nums(1) = 23 For x = 0 To nums.Length - 1 Console.WriteLine("Initial array element: {0}", nums(x)) Next ReDim Preserve nums(2) nums(2) = 35 For x = 0 To nums.Length - 1 Console.WriteLine("Final array element: {0}", nums(x)) Next Console.ReadKey() End Sub End Module
Krok 3) Kliknutím na tlačítko Start na panelu nástrojů spusťte kód. Měli byste dostat následující okno:
Použili jsme následující kód:
Vysvětlení kódu:
- Vytvoření modulu s názvem Module1.
- Vytvoření hlavního dílčího postupu.
- Vytvoření pole s názvem nums pro uložení celočíselných hodnot.
- Zadání, že výše uvedené pole bude ukládat dva prvky, to znamená na indexu 0 a 1, přičemž bude ponechán prostor pro změnu velikosti.
- Přidání prvku 12 k indexu 0 pole nums.
- Přidání prvku 23 k indexu 1 pole nums.
- Použití cyklu for k vytvoření proměnné x, která nám pomůže iterovat od prvního k poslednímu prvku pole nums. Všimněte si, že pole má nyní dva prvky, 12 a 23.
- Tisk nějakého textu a prvků pole na konzole.
- Ukončení cyklu for a skok na další část kódu.
- Změňte velikost čísel pole tak, aby umožňovala prvky na indexech 0 až 2. Nyní bude možné uložit 3 prvky namísto 2. Klíčové slovo Zachovat nám pomáhá udržovat aktuální prvky pole, tedy 12 a 23.
- Přidání prvku 35 do indexu 2 pole. Pole má nyní tři prvky, 12, 23 a 35.
- Použití cyklu for k vytvoření proměnné x, která nám pomůže iterovat od prvního k poslednímu prvku pole nums. Všimněte si, že pole má nyní tři prvky, 12, 23 a 35.
- Tisk nějakého textu a prvků pole na konzole.
- Ukončení cyklu for a skok na další část kódu.
- Pozastavte okno konzoly a počkejte, až uživatel provede akci k jeho zavření.
- Konec dílčího postupu.
- Konec modulu.
Odstranění pole
Po dokončení se doporučuje pole vymazat, většinou když pracujete s dynamickým polem. To vám pomůže uvolnit místo v paměti.
Chcete-li pole odstranit, stačí zavolat příkaz Erase následovaný názvem pole. Například:
Dim nums(1) As Integer nums(0) = 12 nums(1) = 23 Erase nums
Deklarovali jsme pole celých čísel s názvem nums a přidali do něj dva prvky. Příkaz Erase nums vymaže pole.
Funkce rozdělení
Funkce rozdělení poskytovaná Visual Basic .NET nám pomáhá rozdělit řetězec na části a udržovat je v poli. Následující příklad ukazuje, jak tuto funkci použít:
Krok 1) Vytvořte novou konzolovou aplikaci.
Krok 2) Přidejte do aplikace následující kód:
Module Module1 Sub Main() Dim myarray() As String Dim guru99 As String Dim x As Integer guru99 = "Welcome, to, Guru99" myarray = Split(guru99, ", ") For x = LBound(myarray) To UBound(myarray) Console.WriteLine(myarray(x)) Next Console.ReadKey() End Sub End Module
Krok 3) Spusťte kód kliknutím na tlačítko Start na panelu nástrojů. Měli byste dostat následující okno:
Použili jsme následující kód:
Vysvětlení kódu:
- Vytvoření modulu s názvem Module1.
- Spuštění hlavního dílčího postupu.
- Vytvoření pole s názvem myarray pro uložení řetězcových hodnot.
- Vytvoření řetězcové proměnné s názvem guru99.
- Vytvoření celočíselné proměnné s názvem x.
- Přiřazení řetězce k proměnné guru99.
- Rozdělení výše uvedeného řetězce na části a jejich umístění do pole s názvem myarray. "," (čárka) je oddělovač, proto ji funkce rozdělení použije k označení konce různých částí řetězce.
- Použití proměnné x k iteraci přes pole s názvem myarray. LBound a UBound určují spodní a horní hranice pole.
- Tisk hodnot pole s názvem myarray na konzole.
- Ukončení cyklu for a
Funkce spojení
Funkce join nám pomáhá spojit více polí do jednoho řetězce. Demonstruje to následující příklad:
Krok 1) Začněte vytvořením nové konzolové aplikace.
Krok 2) Přidejte do aplikace následující kód:
Module Module1 Sub Main() Dim students(0 To 2) As String students(0) = "John" students(1) = "Alice" students(2) = "Antony" Dim classmates As String classmates = Join(students, ", ") Console.WriteLine(classmates) Console.ReadKey() End Sub End Module
Krok 3) Spusťte kód kliknutím na tlačítko Start na panelu nástrojů:
Použili jsme následující kód:
Vysvětlení kódu:
- Vytvoření modulu s názvem Module1.
- Vytvoření hlavního dílčího postupu.
- Vytvoření pole s názvem studenti, které bude obsahovat 3 řetězcové hodnoty.
- Přidání jména John do indexu 0 pole.
- Přidání jména Alice do indexu 1 pole.
- Přidání jména Antony do indexu 2 pole.
- Definování proměnné s názvem spolužáci datového typu string.
- Spojení všech prvků studentů pole a jejich oddělení pomocí , (čárky). Výsledek této operace bude přiřazen do proměnné spolužáci.
- Tisk obsahu proměnné spolužáci na konzole.
- Pozastavení okna konzoly čekání, až uživatel provede akci k jeho zavření.
- Ukončení hlavního dílčího postupu.
- Ukončení modulu.
Shrnutí
- Pole se používají pro ukládání datových prvků, které k nim patří datový typ.
- Dynamické pole umožňuje uživateli změnit jeho velikost přidáním dalších prvků. Použijete příkaz ReDim pro přidání prvků do existujícího pole
- Velikost pole s pevnou velikostí nelze změnit.
- Prvky pole jsou seřazeny pomocí indexů, přičemž první prvek je na indexu 0 a poslední prvek na indexu n-1, kde n je celkový počet prvků pole.
- Pole lze vymazat pomocí funkce Erase
- K rozdělení nebo spojení pole řetězců můžete použít funkce rozdělení a spojení