Encontre Substring em uma String em C#
Este tutorial irá discutir o método para extrair o texto entre duas palavras dentro de uma string em C#.
Extraia texto de uma string em C#
Se tivermos uma variável de string com um valor como Hi, I am a string variable
e quisermos encontrar o texto entre as palavras Hi
e string
, podemos usar o método String.IndexOf()
junto com o método String.SubString()
para atingir esse objetivo.
O método String.IndexOf(x)
obtém o índice de uma determinada string x
dentro da string. O método String.SubString(x, y)
extrai uma substring com base no índice inicial x
e no índice final y
. Podemos obter os índices das strings inicial e final dentro da string principal com a função String.IndexOf()
. Podemos então extrair o texto entre as duas strings passando os índices de ambas as palavras para a função String.SubString()
. O exemplo de código a seguir nos mostra como podemos extrair texto de uma string com os métodos String.IndexOf()
e String.SubString()
em 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);
}
}
}
Resultado:
, I am a
No código acima, definimos a função stringBetween()
que pega a string principal e ambas as palavras como parâmetros e retorna os textos entre as palavras dentro da string principal. Inicializamos o índice inicial StartIndex
do texto com a instrução Source.IndexOf(Start, 0) + Start.Length
. Esta instrução obtém o índice da string Start
dentro da string Source
e então o incrementa com o comprimento da string Start
para que Start
não apareça no resultado do texto. O mesmo procedimento é realizado para o índice final EndIndex
do texto. Em seguida, retornamos o texto fornecendo StartIndex
como índice inicial e EndIndex-StartIndex
como o comprimento da nova string para a função 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