Metoda subșirului VB.NET cu EXEMPLU

⚡ Rezumat inteligent

VB.Net Substring extracReturnează o porțiune dintr-un String specificând un index inițial și o lungime opțională. Metoda aparține clasei String, numără caracterele de la zero și returnează un String complet nou fără a modifica originalul.

  • 🔢 Index cu bază zero: Metoda Substring numără caracterele de la indexul 0, deci prima literă a unui String se află la poziția zero.
  • ☑️ Două supraîncărcări: Transmiterea unui argument returnează tot ce se întâmplă de la acel index încolo, în timp ce două argumente returnează un număr fix de caractere.
  • ✂️ Extract după poziție: Combinați Substring cu IndexOf sau LastIndexOf pentru a captura textul dinaintea sau de după un anumit caracter.
  • ⚠️ Indexare sigură: Un index negativ sau în afara intervalului generează o excepție ArgumentOutOfRangeException, așadar validați valorile înainte de a apela metoda.
  • 🔤 Rezultat imuabil: Substring returnează un nou String și lasă String-ul sursă neschimbat, respectând imutabilitatea șirurilor .NET.
  • 🤖 Asistență AI: GitHub Copilot și IntelliCode În Visual Studio 2026, se sugerează apeluri corecte de tip subșir și se semnalează indexurile în afara intervalului pe măsură ce se tastează.

Subșir VB.Net

Ce este un subșir?

Funcția Substring este utilizată pentru a obține o parte a unui șir specificat. Această metodă este definită în clasa String a Microsoft VB.NetTrebuie să specificați indexul de început de la care va fi exprimat șirul.tracted. Șirul va fi extracted de la acel index până la lungimea specificată de dvs.

Înainte de fostul/fostatracÎn procesul de sintaxă, este ajută la înțelegerea sintaxei așteptate de metoda Substring.

Sintaxa subșirului

Funcția acceptă două argumente așa cum se arată în următoarea sintaxă:

Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String

Aici,

  • Cuvântul cheie ByVal denotă pass-by-value, care este un mecanism de transmitere a argumentelor către funcții.
  • start_Index este indexul din care va fi obținut subșirul.
  • sub_length denotă lungimea până la care va fi copiat șirul de caractere din start_Index. Această lungime este măsurată în funcție de numărul de caractere. Funcția va returna extracsubșir ted.

Indexul inițial are bază zero, deci primul caracter al șirului se află la poziția 0 în loc de poziția 1.

Cu sintaxa definită, următoarele exemple prezintă metoda Substring la lucru în cadrul unei aplicații consolă.

Exemple

Pasul 1) Creați o nouă aplicație de consolă.

Pasul 2) Adăugați următorul cod:

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

Pasul 3) Faceți clic pe butonul Start din bara de instrumente pentru a executa codul. Ar trebui să obțineți următorul rezultat:

Exemplu de ieșire pentru subșir VB.Net

Am folosit următorul cod:

Exemplu de cod VB.Net Substring

Explicația de Code:

  1. Crearea unui modul numit Module1.
  2. Pornirea sub-procedurii principale.
  3. Definirea unei variabile de tip șir de caractere numită st și atribuirea valorii acesteia Guru99 la acesta.
  4. Definirea unei variabile de tip șir de caractere numită „subst” ca subșir al șirului „st” de la indexul 0 și cu o lungime de 4 caractere.
  5. Imprimarea unui text și a subșirului de mai sus pe consolă.
  6. Întrerupeți fereastra consolei pentru un timp, așteptând ca utilizatorul să ia măsuri pentru a o închide.
  7. Sfârșitul subprocedurii principale.
  8. Sfârșitul modulului.

Un singur argument

Ce se întâmplă dacă trecem un singur argument funcției? Funcția va copia toate datele din șirul care începe de la acel index. Ceea ce se întâmplă este că funcția Substring copie în mod intern toate datele șir de la acel index, precum și cele care urmează acelui index. De exemplu:

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

Faceți clic pe butonul Start pentru a rula codul. Ar trebui să returneze următoarele:

Subșir VB.Net cu un singur argument

Funcția Substring a returnat 99. Am transmis parametrul 4 funcției, ceea ce înseamnă că va începe să exprimetract subșirul de la caracterul de la indexul 4 până la sfârșitul șirului. 9 este caracterul de la indexul 4 al șirului. Guru99, de unde și fostultracțiunea a început acolo.

Pe lângă eliminarea dintr-un singur index, metoda Substring poate viza și caracterele din mijlocul unui String.

Personaje din mijloc

De asemenea, este posibil să obținem caracterele din mijloc ale șirului în cauză. În acest caz, trebuie să furnizăm doar indicele de pornire și lungimea șirului de care avem nevoie. În exemplul următor, obținem un subșir al șirului specificat de la indexul 2 și șirul va avea o lungime de 2 caractere:

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

Faceți clic pe butonul Start din bara de instrumente pentru a rula codul. Veți obține următorul rezultat:

Caracterele din mijloc ale subșirurilor VB.Net

În exemplul de mai sus, funcția Substring a returnat ru. Am transmis parametrii (2, 2) funcției. Primii 2 instruiesc funcția să înceapă extracțiune a subșirului de la indexul 2, în timp ce al doilea 2 instruiește funcția să returneze un subșir cu o lungime de doar 2 caractere. Aceasta înseamnă că extracțiunea subșirului ar trebui să înceapă de la elementul situat la indexul 2 al șirului Guru99, care este r. Deoarece subșirul returnat ar trebui să aibă o lungime de doar 2 caractere, extracțiunea nu va trece de „u”, prin urmare a returnat „ru”.

Un Char

Putem folosi funcția Substring pentru a obține un singur caracter dintr-un șir. Într-un astfel de caz, este o necesitate pentru tine să faci o alocare, dar personajul poate fi accesat direct. Acesta este un pic mai rapid. Următorul exemplu demonstrează două moduri prin care putem realiza acest lucru:

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

Faceți clic pe butonul Start pentru a rula codul. Veți obține următorul rezultat:

Ieșire subșir VB.Net cu un singur caracter

Am folosit următorul cod:

Cod VB.Net Substring cu un singur caracter

Explicația de Code:

  1. Crearea unui modul numit Module1.
  2. Pornirea sub-procedurii principale.
  3. Definirea unei variabile de tip șir de caractere numită st și atribuirea valorii acesteia Guru99 la acesta.
  4. Definirea unei variabile șir numită mid1 și obținerea caracterului de la indexul 1 al String st. Acest caracter va fi atribuit variabilei mid1.
  5. Tipărirea caracterului de mai sus pe consolă.
  6. Definirea unei variabile șir numită mid2 și obținerea caracterului la indexul 1 cu o lungime de 1 din String st. Lungimea lui 1 înseamnă că va returna același caracter la indexul de pornire. Numărarea începe de la indexul de pornire pe care îl specificați. Acest caracter va fi atribuit variabilei mid2.
  7. Tipărirea caracterului de mai sus pe consolă.
  8. Întrerupeți fereastra consolei pentru un timp, așteptând ca utilizatorul să ia măsuri pentru a o închide.
  9. Sfârșitul subprocedurii principale.
  10. Sfârșitul modulului.

Odată ce te simți confortabil, fostul/fostatracCând se utilizează subșiruri, merită să știți cum să gestionați erorile pe care metoda le poate genera.

Erori comune ale subșirurilor și cum să le evitați

Metoda Substring este strictă în ceea ce privește valorile pe care i le transmiteți. Când un argument se află în afara limitelor String-ului, VB.Net generează o excepție ArgumentOutOfRangeException și oprește programul în timpul execuției. Înțelegerea regulilor vă ajută să evitați această greșeală frecventă.

Metoda ridică excepția în trei situații:

  • Indexul_inițial este un număr negativ.
  • Indexul_inițial este mai mare decât lungimea șirului de caractere.
  • Suma dintre start_Index și sub_length indică dincolo de sfârșitul șirului de caractere.

O greșeală frecventă este utilizarea rezultatului funcției IndexOf fără a-l verifica mai întâi. Când IndexOf nu găsește caracterul, acesta returnează -1, iar transmiterea valorii -1 către Substring declanșează excepția. Următorul cod protejează împotriva acestui lucru:

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

Validarea indexului înainte de apel menține aplicația funcționând fără probleme, chiar și atunci când șirul de intrare nu conține caracterul așteptat.

Obținerea unui subșir înainte sau după un caracter

O sarcină comună este extracdivizarea textului care apare înainte sau după un anumit caracter, cum ar fi divizarea unei adrese de e-mail la semnul @. VB.Net nu oferă o funcție dedicată pentru acest lucru, dar puteți combina IndexOf cu Substring pentru a realiza acest lucru.

Text înaintea unui caracter: Apelați IndexOf pentru a localiza caracterul, apoi transmiteți acel index ca lungime către 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

Codul afișează guru99, porțiunea din șir care se află înaintea semnului @.

Text după un caracter: adăugați 1 la index și lăsați Substring să ruleze până la sfârșitul String-ului:

Dim domainPart As String = email.Substring(position + 1)
Console.WriteLine(domainPart)

Aceasta returnează example.com. Când un caracter apare de mai multe ori, se folosește LastIndexOf în locul IndexOf pentru a începe de la ultima apariție în loc de prima.

Subșir vs. funcții stânga, dreapta și mijlocie

Visual Basic moștenește trei funcții de șir vechi din versiunile anterioare: Left, Right și Mid. Acestea se află în MicrosoftSpațiul de nume .VisualBasic și poate părea mai familiar dezvoltatorilor care vin din VB clasic.

  • Stânga(șir, n) returnează primele n caractere ale unui șir de caractere.
  • Dreapta(șir, n) returnează ultimele n caractere ale unui șir de caractere.
  • Mijloc(șir, început, lungime) returnează o porțiune dintr-o poziție inițială, la fel ca Substring.

Diferența cheie constă în modul în care numără pozițiile. Funcția Mid are bază unu, deci primul caracter se află la poziția 1, în timp ce metoda Substring are bază zero și începe numărarea de la 0. Substring este abordarea standard .NET și se comportă la fel în fiecare limbaj .NET, deci este alegerea recomandată pentru codul nou. Rezervați Left, Right și Mid pentru întreținerea proiectelor Visual Basic mai vechi.

Întrebări frecvente

Da. Metoda Substring are bază zero, deci primul caracter al String-ului se află la indexul 0, al doilea la indexul 1 și așa mai departe. Numărarea de la zero este importantă atunci când calculați poziția inițială.

Nu. Șirurile de caractere din VB.Net sunt imuabile, deci metoda Substring nu modifică niciodată șirul original. Returnează un șir complet nou care conține ex.traccaractere ted, în timp ce șirul sursă își păstrează valoarea originală neschimbată.

Ex de subșirtracreprezintă o porțiune continuă a unui șir de caractere folosind un index și o lungime. Despică Împarte un șir de caractere într-o matrice de șiruri mai mici oriunde apare un delimitator, cum ar fi o virgulă sau un spațiu. Folosește Split pentru liste și Substring pentru felii.

Transmiterea unei lungimi de 0 returnează un șir gol („”), nu nimic. Apelul este valid și nu ridică o excepție, cu condiția ca indexul inițial să se încadreze încă în limitele șirului.

Subșirul păstrează porțiunea specificată din șir și elimină restul. Metoda Remove face opusul: șterge caracterele care încep de la un anumit index și returnează șirul rămas. Acestea sunt operații complementare.

Da. Spațiile, tabulațiile și semnele de punctuație sunt numărate fiecare ca un caracter atunci când metoda Substring calculează indexul inițial și lungimea. Fiecare poziție din String, inclusiv spațiile albe, face parte din numărătoare, nu doar literele vizibile.

Da. Copilotul GitHub în Visual Studio 2026 transformă un comentariu în limba engleză simplă, cum ar fi extracintroducerea textului dinaintea unei virgule într-un apel Substring funcțional cu IndexOf. Verificați întotdeauna indexurile generate pentru a confirma că se încadrează în interval.

Da. Visual Studio 2026 conectează GitHub Copilot cu inteliCode pentru a semnala indecși probabil în afara intervalului, a sugera argumente corecte și a finaliza apeluri Substring pe măsură ce tastați, ajutațiping Preveniți o excepție ArgumentOutOfRangeException înainte de a rula programul.

Rezumați această postare cu: