Metodo sottostringa VB.NET con EXAMPLE

โšก Riepilogo intelligente

VB.Net Substring extracQuesto metodo converte una porzione di una stringa specificando un indice iniziale e una lunghezza facoltativa. Il metodo appartiene alla classe String, conta i caratteri a partire da zero e restituisce una nuova stringa senza modificare l'originale.

  • ๐Ÿ”ข Indice a base zero: Il metodo Substring conta i caratteri a partire dall'indice 0, quindi la prima lettera di una stringa si trova in posizione zero.
  • โ˜‘๏ธ Due sovraccarichi: Passando un solo argomento si ottiene tutto ciรฒ che inizia da quell'indice in poi, mentre con due argomenti si ottiene un numero fisso di caratteri.
  • โœ‚๏ธ Extract per posizione: Combina Substring con IndexOf o LastIndexOf per acquisire il testo prima o dopo un carattere specifico.
  • โš ๏ธ Indicizzazione sicura: Un indice negativo o fuori intervallo genera un'eccezione ArgumentOutOfRangeException, quindi รจ necessario convalidare i valori prima di chiamare il metodo.
  • ๐Ÿ”ค Risultato immutabile: La funzione Substring restituisce una nuova stringa e lascia invariata la stringa originale, rispecchiando l'immutabilitร  delle stringhe .NET.
  • ๐Ÿค– Assistenza AI: GitHub Copilot e IntelliCode In Visual Studio 2026 vengono suggerite le chiamate corrette a Substring e vengono segnalati gli indici fuori intervallo durante la digitazione.

VB.Net Sottostringa

Che cos'รจ una sottostringa?

La funzione Substring viene utilizzata per ottenere una parte di una stringa specificata. Questo metodo รจ definito nella classe String di Microsoft VB.Net. Devi specificare l'indice iniziale da cui verrร  estratta la stringatracted. La stringa sarร  espressatracted da quell'indice fino alla lunghezza che specifichi.

Prima dell'extracQuesto aiuta a comprendere la sintassi prevista dal metodo Substring.

Sintassi della sottostringa

La funzione accetta due argomenti come mostrato nella seguente sintassi:

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

Qui,

  • La parola chiave ByVal denota pass-by-value, che รจ un meccanismo per passare argomenti alle funzioni.
  • start_Index รจ l'indice da cui verrร  estratta la sottostringa.
  • sub_length indica la lunghezza fino alla quale la stringa verrร  copiata da start_Index. Questa lunghezza รจ misurata in termini di numero di caratteri. La funzione restituirร  l'extracsottostringa ted.

L'indice iniziale รจ basato su zero, quindi il primo carattere della stringa si trova in posizione 0 anzichรฉ in posizione 1.

Con la sintassi definita, i seguenti esempi mostrano il metodo Substring in azione all'interno di un'applicazione console.

Esempi

Passaggio 1) Creare una nuova applicazione console.

Passaggio 2) Aggiungere il seguente codice:

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

Passaggio 3) Fai clic sul pulsante Avvia nella barra degli strumenti per eseguire il codice. Dovresti ottenere il seguente risultato:

Esempio di output di una sottostringa in VB.Net

Abbiamo utilizzato il seguente codice:

Esempio di codice per la sottostringa in VB.Net

Spiegazione di Code:

  1. Creazione di un modulo denominato Modulo1.
  2. Avvio della sottoprocedura principale.
  3. Definizione di una variabile stringa denominata st e assegnazione del valore Guru99 ad esso.
  4. Definizione di una variabile stringa denominata 'subst' come sottostringa della stringa 'st' a partire dall'indice 0 e di lunghezza pari a 4 caratteri.
  5. Stampa del testo e della sottostringa precedente sulla console.
  6. Mettere in pausa la finestra della console per un po' in attesa che l'utente intervenga per chiuderla.
  7. Fine della sottoprocedura principale.
  8. Fine del modulo.

Un argomento

Cosa succede se passiamo un solo argomento alla funzione? La funzione copierร  tutti i dati nella String che inizia da quell'indice. Ciรฒ che accade รจ che la funzione Substring copia internamente tutti i dati della stringa in quell'indice cosรฌ come quelli che seguono quell'indice. Per esempio:

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

Fai clic sul pulsante Start per eseguire il codice. Dovrebbe restituire quanto segue:

VB.Net Sottostringa con un argomento

La funzione Substring ha restituito 99. Abbiamo passato il parametro 4 alla funzione, il che significa che inizierร  atract la sottostringa dal carattere all'indice 4 fino alla fine della stringa. 9 รจ il carattere all'indice 4 della stringa Guru99, quindi l'extracLa cosa รจ iniziata lรฌ.

Oltre a rimuovere caratteri da un singolo indice, il metodo Substring puรฒ anche selezionare caratteri al centro di una stringa.

Caratteri medi

รˆ anche possibile per noi ottenere i caratteri centrali della Stringa in questione. In questo caso, dobbiamo solo fornire l'indice di partenza e la lunghezza della Stringa di cui abbiamo bisogno. Nell'esempio seguente, stiamo ottenendo una sottostringa della Stringa specificata dall'indice 2 e la Stringa avrร  una lunghezza di 2 caratteri:

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

Fai clic sul pulsante Start dalla barra degli strumenti per eseguire il codice. Otterrai il seguente risultato:

VB.Net Sottostringa caratteri centrali

Nell'esempio precedente, la funzione Substring ha restituito ru. Abbiamo passato i parametri (2, 2) alla funzione. Il primo 2 indica alla funzione di iniziare l'extraczione della sottostringa dall'indice 2 mentre il secondo 2 istruisce la funzione a restituire una sottostringa con una lunghezza di soli 2 caratteri. Ciรฒ significa che l'extracla zione della sottostringa dovrebbe iniziare dall'elemento situato all'indice 2 della stringa Guru99, che รจ r. Poichรฉ la sottostringa restituita dovrebbe avere una lunghezza di soli 2 caratteri, l'extracLa funzione non andrร  oltre la 'u', quindi ha restituito 'ru'.

Un carattere

Possiamo usare la funzione Substring per ottenere un singolo carattere da una stringa. In tal caso, รจ necessario che tu faccia un'allocazione, ma il carattere puรฒ essere accessibile direttamente. Questo รจ un po' piรน veloce. Il seguente esempio dimostra due modi attraverso cui possiamo ottenere questo:

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

Fai clic sul pulsante Start per eseguire il codice. Otterrai il seguente risultato:

Output di un singolo carattere sottostringa in VB.Net

Abbiamo utilizzato il seguente codice:

Codice di sottostringa a singolo carattere in VB.Net

Spiegazione di Code:

  1. Creazione di un modulo denominato Modulo1.
  2. Avvio della sottoprocedura principale.
  3. Definizione di una variabile stringa denominata st e assegnazione del valore Guru99 ad esso.
  4. Definizione di una variabile stringa denominata mid1 e acquisizione del carattere nell'indice 1 di String st. Questo carattere verrร  assegnato alla variabile mid1.
  5. Stampa del carattere sopra sulla console.
  6. Definire una variabile stringa denominata mid2 e ottenere il carattere all'indice 1 con una lunghezza pari a 1 da String st. La lunghezza pari a 1 significa che restituirร  lo stesso carattere all'indice iniziale. Il conteggio inizia dall'indice iniziale specificato. Questo carattere verrร  assegnato alla variabile mid2.
  7. Stampa del carattere sopra sulla console.
  8. Mettere in pausa la finestra della console per un po' in attesa che l'utente intervenga per chiuderla.
  9. Fine della sottoprocedura principale.
  10. Fine del modulo.

Una volta che ti senti a tuo agio extracQuando si tratta di estrarre sottostringhe, รจ utile sapere come gestire gli errori che il metodo puรฒ generare.

Errori comuni nelle sottostringhe e come evitarli

Il metodo Substring รจ rigoroso riguardo ai valori che gli vengono passati. Quando un argomento si trova al di fuori dei limiti della stringa, VB.Net genera un'eccezione ArgumentOutOfRangeException e interrompe il programma in fase di esecuzione. Comprendere queste regole aiuta a evitare questo errore comune.

Il metodo genera l'eccezione in tre situazioni:

  • L'indice iniziale (start_Index) รจ un numero negativo.
  • L'indice iniziale (start_Index) รจ maggiore della lunghezza della stringa.
  • La somma di start_Index e sub_length punta oltre la fine della stringa.

Un errore frequente รจ quello di utilizzare il risultato della funzione IndexOf senza prima verificarlo. Quando IndexOf non trova il carattere, restituisce -1, e passare -1 a Substring genera un'eccezione. Il codice seguente previene questo problema:

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

La convalida dell'indice prima della chiamata garantisce il corretto funzionamento dell'applicazione, anche quando la stringa di input non contiene il carattere previsto.

Ottenere una sottostringa prima o dopo un carattere

Un compito comune รจ l'estracestrarre il testo che appare prima o dopo un carattere specifico, ad esempio separare un indirizzo email in corrispondenza del simbolo @. VB.Net non fornisce una funzione dedicata per questo, ma รจ possibile combinare IndexOf con Substring per ottenere lo stesso risultato.

Testo prima di un carattere: chiama IndexOf per individuare il carattere, quindi passa quell'indice come lunghezza a 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

Il codice stampa guru99, la porzione di stringa che precede il simbolo @.

Testo dopo un carattere: Aggiungi 1 all'indice e fai in modo che Substring venga eseguita fino alla fine della stringa:

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

Questo restituisce example.com. Quando un carattere appare piรน di una volta, usa LastIndexOf al posto di IndexOf per iniziare dall'ultima occorrenza invece che dalla prima.

Sottostringa vs. Funzioni sinistra, destra e centrale

Visual Basic eredita tre funzioni di stringa legacy dalle versioni precedenti: Left, Right e Mid. Risiedono nel MicrosoftIl namespace .VisualBasic puรฒ risultare piรน familiare agli sviluppatori provenienti dal VB classico.

  • Sinistra(stringa, n) Restituisce i primi n caratteri di una stringa.
  • Destra(stringa, n) Restituisce gli ultimi n caratteri di una stringa.
  • Mid(stringa, inizio, lunghezza) restituisce una porzione a partire da una posizione iniziale, in modo simile a Substring.

La differenza principale sta nel modo in cui contano le posizioni. La funzione Mid รจ basata sull'indice 1, quindi il primo carattere si trova in posizione 1, mentre il metodo Substring รจ basato sull'indice 0 e inizia a contare da 0. Substring รจ l'approccio standard di .NET e si comporta allo stesso modo in tutti i linguaggi .NET, quindi รจ la scelta consigliata per il nuovo codice. Riservate Left, Right e Mid per la manutenzione di vecchi progetti Visual Basic.

DOMANDE FREQUENTI

Sรฌ. Il metodo Substring รจ basato sull'indice zero, quindi il primo carattere della stringa si trova all'indice 0, il secondo all'indice 1 e cosรฌ via. Contare da zero รจ importante quando si calcola la posizione iniziale.

No. Le stringhe in VB.Net sono immutabili, quindi il metodo Substring non altera mai la stringa originale. Restituisce una stringa completamente nuova che contiene l'extraccaratteri ted, mentre la stringa sorgente mantiene invariato il suo valore originale.

Sottostringa extracts una porzione continua di una stringa utilizzando un indice e una lunghezza. Diviso Divide una stringa in un array di stringhe piรน piccole in corrispondenza di ogni delimitatore, come una virgola o uno spazio. Utilizzare Split per gli elenchi e Substring per le porzioni di stringa.

Passando una lunghezza pari a 0 si ottiene una stringa vuota (""), non Nothing. La chiamata รจ valida e non genera un'eccezione, a condizione che l'indice iniziale rientri ancora nei limiti della stringa.

Il metodo Substring conserva la porzione di stringa specificata e scarta il resto. Il metodo Remove fa l'opposto: elimina i caratteri a partire da un dato indice e restituisce la stringa rimanente. Sono operazioni complementari.

Sรฌ. Spazi, tabulazioni e punteggiatura vengono conteggiati come un singolo carattere quando il metodo Substring calcola l'indice iniziale e la lunghezza. Ogni posizione nella stringa, inclusi gli spazi bianchi, contribuisce al conteggio, non solo le lettere visibili.

Sรฌ. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. Copilota GitHub in Visual Studio 2026 trasforma un commento in inglese semplice, come ad esempiotracestraendo il testo prima di una virgola, in una chiamata Substring funzionante con IndexOf. Rivedi sempre gli indici generati per confermare che rimangano entro l'intervallo.

Sรฌ. Visual Studio 2026 associa GitHub Copilot a intelliCode per segnalare indici probabilmente fuori intervallo, suggerire argomenti corretti e completare le chiamate Substring mentre digiti, aiutaping รˆ necessario impedire un'eccezione ArgumentOutOfRangeException prima di eseguire il programma.

Riassumi questo post con: