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.

  • ๐Ÿ”ข Indeks baziran na nuli: Metoda Substring broji znakove od indeksa 0, tako da se prvo slovo niza znakova nalazi na poziciji nula.
  • โ˜‘๏ธ Dva preoptereฤ‡enja: Prosljeฤ‘ivanje jednog argumenta vraฤ‡a sve od tog indeksa nadalje, dok dva argumenta vraฤ‡aju fiksni broj znakova.
  • โœ‚๏ธ Extract po poloลพaju: Kombinirajte Substring s IndexOf ili LastIndexOf za hvatanje teksta prije ili poslije odreฤ‘enog znaka.
  • โš ๏ธ Sigurno indeksiranje: Negativan ili izvan raspona indeksa baca iznimku ArgumentOutOfRangeException, stoga provjerite vrijednosti prije pozivanja metode.
  • ๐Ÿ”ค Nepromjenjivi rezultat: Podniz vraฤ‡a novi niz znakova i ostavlja izvorni niz znakova nepromijenjenim, ลกto odgovara nepromjenjivosti .NET nizova znakova.
  • ๐Ÿค– AI pomoฤ‡: GitHub Copilot i IntelliCode U Visual Studiju 2026 predlaลพe ispravne pozive podnizova i oznaฤava indekse izvan raspona dok tipkate.

VB.Net podniz

ล 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:

Primjer izlaza podniza VB.Net

Koristili smo sljedeฤ‡i kod:

Primjer koda za podnizove u VB.Net-u

Objaลกnjenje Code:

  1. Stvaranje modula pod nazivom Module1.
  2. Pokretanje glavne potprocedure.
  3. Definiranje string varijable pod nazivom st i dodjeljivanje vrijednosti Guru99 tome.
  4. Definiranje string varijable pod nazivom 'subst' kao podstringa stringa 'st' iz indeksa 0 i duljine 4 znaka.
  5. Ispis teksta i gornjeg podniza na konzoli.
  6. Pauziranje prozora konzole na neko vrijeme ฤekajuฤ‡i da korisnik poduzme akciju da ga zatvori.
  7. Kraj glavnog podpostupka.
  8. 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:

VB.Net podniz s jednim argumentom

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:

Srednji znakovi podniza u VB.Net-u

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:

Izlaz jednog znaka podniza u VB.Net-u

Koristili smo sljedeฤ‡i kod:

VB.Net podniz s jednim znakom koda

Objaลกnjenje Code:

  1. Stvaranje modula pod nazivom Module1.
  2. Pokretanje glavne potprocedure.
  3. Definiranje string varijable pod nazivom st i dodjeljivanje vrijednosti Guru99 tome.
  4. Definiranje string varijable pod nazivom mid1 i dobivanje znaka na indeksu 1 niza st. Ovaj znak bit ฤ‡e dodijeljen varijabli mid1.
  5. Ispis gornjeg znaka na konzoli.
  6. 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.
  7. Ispis gornjeg znaka na konzoli.
  8. Pauziranje prozora konzole na neko vrijeme ฤekajuฤ‡i da korisnik poduzme akciju da ga zatvori.
  9. Kraj glavnog podpostupka.
  10. 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.

Pitanja i odgovori

Da. Metoda Substring temelji se na nuli, tako da se prvi znak niza nalazi na indeksu 0, drugi na indeksu 1 i tako dalje. Brojanje od nule vaลพno je pri izraฤunavanju poฤetne pozicije.

Ne. Stringovi u VB.Net-u su nepromjenjivi, pa metoda Substring nikada ne mijenja izvorni String. Vraฤ‡a potpuno novi String koji sadrลพi extracted znakova, dok izvorni niz znakova zadrลพava svoju izvornu vrijednost nepromijenjenom.

Podniz extracts jedan kontinuirani dio niza znakova koristeฤ‡i indeks i duljinu. Split razbija niz znakova (String) u niz manjih nizova gdje god se pojavi razdjelnik, poput zareza ili razmaka. Koristite Split za popise, a Substring za dijelove.

Prosljeฤ‘ivanje duljine 0 vraฤ‡a prazan niz (โ€œโ€), a ne Nothing. Poziv je valjan i ne izaziva iznimku, pod uvjetom da poฤetni indeks joลก uvijek spada unutar granica niza.

Podniz zadrลพava dio niza koji navedete, a ostatak odbacuje. Metoda Remove radi suprotno: briลกe znakove poฤevลกi od zadanog indeksa i vraฤ‡a preostali niz. To su komplementarne operacije.

Da. Razmaci, tabulatori i interpunkcijski znakovi raฤunaju se kao jedan znak kada metoda Substring izraฤunava poฤetni indeks i duljinu. Svaka pozicija u nizu, ukljuฤujuฤ‡i razmake, dio je brojanja, ne samo vidljiva slova.

Da. GitHub kopilot u Visual Studiju 2026 pretvara komentar na obiฤnom engleskom jeziku, kao ลกto je extracpretvaranjem teksta prije zareza u funkcionalni poziv podniza pomoฤ‡u IndexOf. Uvijek pregledajte generirane indekse kako biste potvrdili da ostaju unutar raspona.

Da. Visual Studio 2026 spaja GitHub Copilot s intelliCode za oznaฤavanje vjerojatnih indeksa izvan raspona, predlaganje ispravnih argumenata i dovrลกavanje poziva podniza dok tipkate, helping Sprjeฤavate ArgumentOutOfRangeException prije pokretanja programa.

Saลพmite ovu objavu uz: