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.
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:
Abbiamo utilizzato il seguente codice:
Spiegazione di Code:
- Creazione di un modulo denominato Modulo1.
- Avvio della sottoprocedura principale.
- Definizione di una variabile stringa denominata st e assegnazione del valore Guru99 ad esso.
- Definizione di una variabile stringa denominata 'subst' come sottostringa della stringa 'st' a partire dall'indice 0 e di lunghezza pari a 4 caratteri.
- Stampa del testo e della sottostringa precedente sulla console.
- Mettere in pausa la finestra della console per un po' in attesa che l'utente intervenga per chiuderla.
- Fine della sottoprocedura principale.
- 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:
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:
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:
Abbiamo utilizzato il seguente codice:
Spiegazione di Code:
- Creazione di un modulo denominato Modulo1.
- Avvio della sottoprocedura principale.
- Definizione di una variabile stringa denominata st e assegnazione del valore Guru99 ad esso.
- Definizione di una variabile stringa denominata mid1 e acquisizione del carattere nell'indice 1 di String st. Questo carattere verrร assegnato alla variabile mid1.
- Stampa del carattere sopra sulla console.
- 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.
- Stampa del carattere sopra sulla console.
- Mettere in pausa la finestra della console per un po' in attesa che l'utente intervenga per chiuderla.
- Fine della sottoprocedura principale.
- 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.






