Trova Substring in una stringa in C#
Questo tutorial discuterà il metodo per estrarre il testo tra due parole all’interno di una stringa in C#.
Estrai testo da una stringa in C#
Se abbiamo una variabile stringa che ha un valore come Hi, I am a string variable
e vogliamo trovare il testo tra le parole Hi
e string
, possiamo usare il metodo String.IndexOf()
insieme al metodo String.SubString()
per raggiungere questo obiettivo.
Il metodo String.IndexOf(x)
ottiene l’indice di una particolare stringa x
all’interno della stringa. Il metodo String.SubString(x, y)
estrae una sottostringa sulla base dell’indice iniziale x
e dell’indice finale y
. Possiamo ottenere gli indici delle stringhe iniziali e finali all’interno della stringa principale con la funzione String.IndexOf()
. Possiamo quindi estrarre il testo tra entrambe le stringhe passando gli indici di entrambe le parole alla funzione String.SubString()
. Il seguente esempio di codice ci mostra come estrarre del testo da una stringa con i metodi String.IndexOf()
e String.SubString()
in C#.
using System;
namespace text_from_string {
class Program {
public static string stringBetween(string Source, string Start, string End) {
string result = "";
if (Source.Contains(Start) && Source.Contains(End)) {
int StartIndex = Source.IndexOf(Start, 0) + Start.Length;
int EndIndex = Source.IndexOf(End, StartIndex);
result = Source.Substring(StartIndex, EndIndex - StartIndex);
return result;
}
return result;
}
static void Main(string[] args) {
string s = "Hi, I am a string variable.";
string word1 = "Hi";
string word2 = "string";
string text = stringBetween(s, word1, word2);
Console.WriteLine(text);
}
}
}
Produzione:
, I am a
Nel codice sopra, definiamo la funzione stringBetween()
che prende la stringa principale ed entrambe le parole come parametri e restituisce i testi tra le parole all’interno della stringa principale. Abbiamo inizializzato l’indice iniziale StartIndex
del testo con l’istruzione Source.IndexOf(Start, 0) + Start.Length
. Questa istruzione ottiene l’indice della stringa Start
all’interno della stringa Source
e quindi lo incrementa con la lunghezza della stringa Inizio
in modo che Start
non compaia nel risultato del testo. La stessa procedura viene eseguita per l’indice finale EndIndex
del testo. Abbiamo quindi restituito il testo dando StartIndex
come indice iniziale e EndIndex-StartIndex
come lunghezza della nuova stringa alla funzione String.SubString()
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn