Encontre Substring em uma String em C#

Muhammad Maisam Abbas 29 maio 2021 9 maio 2021 Csharp Csharp String
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().

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Artigo relacionado - Csharp String

  • C# Converter Int a String
  • C# Converter String em Enum
  • Use Strings na instrução Switch em C#
  • C# Converter String para Data
  • Como converter uma string em Booleano em C#
  • Como converter uma string em uma array de bytes em C#