VB.NET Substring metoda s PRIMJEROM
โก Pametni saลพetak
VB.Net podniz npr.tracVraฤa dio niza znakova (stringa) odreฤivanjem poฤetnog indeksa i opcionalne duljine. Metoda pripada klasi String, broji znakove od nule i vraฤa potpuno novi niz znakova bez mijenjanja originala.
ล to je podniz?
Funkcija Substring koristi se za dobivanje dijela odreฤenog niza. Ova metoda je definirana u klasi String od Microsoft VB.NetMorate odrediti poฤetni indeks od kojeg ฤe se niz izvoditi.tracted. Niz ฤe biti extraciz tog indeksa do duljine koju navedete.
Prije bivลกeg/bivลกetracPrilikom unoลกenja teksta, pomaลพe razumjeti sintaksu koju metoda Substring oฤekuje.
Sintaksa podniza
Funkcija prihvaฤa dva argumenta kao ลกto je prikazano u sljedeฤoj sintaksi:
Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String
Ovdje,
- Kljuฤna rijeฤ ByVal oznaฤava prijenos po vrijednosti, ลกto je mehanizam prosljeฤivanja argumenata funkcijama.
- Poฤetni_indeks je indeks iz kojeg ฤe se dobiti podniz.
- sub_length oznaฤava duljinu do koje ฤe se niz kopirati iz start_Indexa. Ova duljina se mjeri brojem znakova. Funkcija ฤe vratiti extracted podniz.
Poฤetni indeks je baziran na nuli, tako da se prvi znak niza nalazi na poziciji 0, a ne na poziciji 1.
S definiranom sintaksom, sljedeฤi primjeri pokazuju metodu Substring na djelu unutar konzolne aplikacije.
Primjeri
Korak 1) Izradite novu konzolnu aplikaciju.
Korak 2) Dodajte sljedeฤi kod:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(0, 4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Korak 3) Kliknite gumb Start na alatnoj traci za izvrลกavanje koda. Trebali biste dobiti sljedeฤi rezultat:
Koristili smo sljedeฤi kod:
Objaลกnjenje Code:
- Stvaranje modula pod nazivom Module1.
- Pokretanje glavne potprocedure.
- Definiranje string varijable pod nazivom st i dodjeljivanje vrijednosti Guru99 tome.
- Definiranje string varijable pod nazivom 'subst' kao podstringa stringa 'st' iz indeksa 0 i duljine 4 znaka.
- Ispis teksta i gornjeg podniza na konzoli.
- Pauziranje prozora konzole na neko vrijeme ฤekajuฤi da korisnik poduzme akciju da ga zatvori.
- Kraj glavnog podpostupka.
- Kraj modula.
Jedan argument
ล to ako funkciji proslijedimo samo jedan argument? Funkcija ฤe kopirati sve podatke u nizu koji poฤinje od tog indeksa. Ono ลกto se dogaฤa jest da funkcija Substring interno kopira sve podatke niza u tom indeksu, kao i one koji slijede taj indeks. Na primjer:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Pritisnite gumb Start za pokretanje koda. Trebao bi vratiti sljedeฤe:
Funkcija Substring vratila je 99. Funkciji smo proslijedili parametar 4, ลกto znaฤi da ฤe poฤeti izvrลกavatitract podniz od znaka na indeksu 4 do kraja niza. 9 je znak na indeksu 4 niza Guru99, dakle bivลกitraccija je tamo zapoฤela.
Osim izrezivanja iz jednog indeksa, metoda Substring moลพe ciljati i znakove u sredini niza.
Srednji likovi
Takoฤer je moguฤe da dobijemo srednje znakove predmetnog niza. U ovom sluฤaju, moramo dati samo poฤetni indeks i duljinu niza koja nam je potrebna. U sljedeฤem primjeru dobivamo podniz navedenog niza iz indeksa 2, a niz ฤe imati duljinu od 2 znaka:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(2, 2) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Pritisnite gumb Start na alatnoj traci za pokretanje koda. Dobit ฤete sljedeฤi rezultat:
U gornjem primjeru, funkcija Substring vratila je ru. Funkciji smo proslijedili parametre (2, 2). Prva 2 upuฤuju funkciju da zapoฤne extracpodniz iz indeksa 2, dok drugi 2 upuฤuje funkciju da vrati podniz duljine samo 2 znaka. To znaฤi da je npr.tracฤitanje podniza treba zapoฤeti od elementa koji se nalazi na indeksu 2 niza. Guru99, ลกto je r. Buduฤi da vraฤeni podniz treba imati duljinu od samo 2 znaka, extraccija neฤe iฤi dalje od 'u', stoga je vratila 'ru'.
Jedan ฤar
Moลพemo koristiti funkciju Substring da dobijemo jedan znak iz niza. U tom sluฤaju morate izvrลกiti dodjelu, ali liku se moลพe pristupiti izravno. Ovo je malo brลพe. Sljedeฤi primjer pokazuje dva naฤina na koje to moลพemo postiฤi:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim mid1 As Char = st(1) Console.WriteLine(mid1) Dim mid2 As String = st.Substring(1, 1) Console.WriteLine(mid2) Console.ReadKey() End Sub End Module
Pritisnite gumb Start za pokretanje koda. Dobit ฤete sljedeฤi rezultat:
Koristili smo sljedeฤi kod:
Objaลกnjenje Code:
- Stvaranje modula pod nazivom Module1.
- Pokretanje glavne potprocedure.
- Definiranje string varijable pod nazivom st i dodjeljivanje vrijednosti Guru99 tome.
- Definiranje string varijable pod nazivom mid1 i dobivanje znaka na indeksu 1 niza st. Ovaj znak bit ฤe dodijeljen varijabli mid1.
- Ispis gornjeg znaka na konzoli.
- Definiranje string varijable pod nazivom mid2 i dobivanje znaka na indeksu 1 duljine 1 iz String st. Duลพina 1 znaฤi da ฤe vratiti isti znak na poฤetnom indeksu. Brojanje poฤinje od poฤetnog indeksa koji navedete. Ovaj znak bit ฤe dodijeljen varijabli mid2.
- Ispis gornjeg znaka na konzoli.
- Pauziranje prozora konzole na neko vrijeme ฤekajuฤi da korisnik poduzme akciju da ga zatvori.
- Kraj glavnog podpostupka.
- Kraj modula.
Kad se jednom osjeฤaลก ugodno s bivลกim/bivลกomtracPrilikom obrade podnizova, vrijedi znati kako se nositi s greลกkama koje metoda moลพe izazvati.
Uobiฤajene pogreลกke podnizova i kako ih izbjeฤi
Metoda Substring je stroga u pogledu vrijednosti koje joj prosljeฤujete. Kada argument padne izvan granica Stringa, VB.Net izbacuje ArgumentOutOfRangeException i zaustavlja program za vrijeme izvoฤenja. Razumijevanje pravila pomaลพe vam da izbjegnete ovu uobiฤajenu pogreลกku.
Metoda izaziva iznimku u tri situacije:
- Poฤetni_indeks je negativni broj.
- Poฤetni_index je veฤi od duljine niza.
- Zbroj toฤaka start_Index i sub_length iza kraja niza.
ฤesta pogreลกka je koriลกtenje rezultata funkcije IndexOf bez prethodne provjere. Kada IndexOf ne pronaฤe znak, vraฤa -1, a prosljeฤivanje -1 funkciji Substring pokreฤe iznimku. Sljedeฤi kod ลกtiti od toga:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim pos As Integer = st.IndexOf("9") If pos >= 0 Then Dim subst As String = st.Substring(pos) Console.WriteLine(subst) Else Console.WriteLine("Character not found") End If Console.ReadKey() End Sub End Module
Validacija indeksa prije poziva osigurava nesmetan rad aplikacije, ฤak i kada ulazni niz znakova ne sadrลพi znak koji oฤekujete.
Dobivanje podniza prije ili poslije znaka
Uobiฤajeni zadatak je bivลกitracrazdvajanje teksta koji se pojavljuje prije ili poslije odreฤenog znaka, kao ลกto je razdvajanje adrese e-poลกte kod znaka @. VB.Net ne nudi posebnu funkciju za to, ali moลพete kombinirati IndexOf s Substringom da biste to postigli.
Tekst prije znaka: Pozovite IndexOf za lociranje znaka, a zatim taj indeks proslijedite kao duljinu funkciji Substring:
Module Module1 Sub Main() Dim email As String = "guru99@example.com" Dim position As Integer = email.IndexOf("@") Dim namePart As String = email.Substring(0, position) Console.WriteLine(namePart) Console.ReadKey() End Sub End Module
Kod ispisuje guru99, dio niza znakova koji se nalazi prije znaka @.
Tekst nakon znaka: dodajte 1 indeksu i pustite da se Substring izvrลกava do kraja Stringa:
Dim domainPart As String = email.Substring(position + 1) Console.WriteLine(domainPart)
Ovo vraฤa example.com. Kada se znak pojavljuje viลกe puta, koristite LastIndexOf umjesto IndexOf za poฤetak od posljednjeg pojavljivanja umjesto prvog.
Podniz u odnosu na funkcije Left, Right i Mid
Visual Basic nasljeฤuje tri naslijeฤene string funkcije iz ranijih verzija: Left, Right i Mid. One se nalaze u Microsoft.VisualBasic imenski prostor i moลพe se ฤiniti poznatijim programerima koji dolaze s klasiฤnog VB-a.
- Lijevo(niz, n) vraฤa prvih n znakova niza znakova.
- Desno(niz znakova, n) vraฤa posljednjih n znakova niza znakova.
- Sredina(niz, poฤetak, duljina) vraฤa dio s poฤetne pozicije, sliฤno kao Substring.
Kljuฤna razlika je u naฤinu na koji broje pozicije. Funkcija Mid se temelji na jedinici, tako da se prvi znak nalazi na poziciji 1, dok se metoda Substring temelji na nuli i poฤinje brojati od 0. Substring je standardni .NET pristup i ponaลกa se na isti naฤin u svakom .NET jeziku, pa je preporuฤeni izbor za novi kod. Rezervirajte Left, Right i Mid za odrลพavanje starijih Visual Basic projekata.






