Get value from inside a C#string

Asked

Viewed 572 times

0

I need to take the value inside a string dynamically. The values of the string will always be in the following format:

Ex1: "Aprovados por autorizantes da aplicação -> Fiscal Mestre"
Ex2: "Aprovados por autorizantes da aplicação -> Analista CAU"
Ex3: "Aprovados por autorizantes da aplicação -> ESCR-PREC-PILOTO"

The value I need is the one that starts after -> and ends before " i.e.:

Ex1: Fiscal Mestre
Ex2: Analista CAU
Ex3: ESCR-PREC-PILOTO

An observation, after -> there is always a space.

2 answers

4


You can find the content of > by the Method IndexOf:

string valor = teste.Substring(teste.IndexOf(">")+1).Trim();

Or Use a Split:

string valor2 = teste.Split('>')[1].Trim();

Example:

public class Program
{
    public static void Main()
    {
        string teste = "Aprovados por autorizantes da aplicação -> Fiscal Mestre";

        string valor = teste.Substring(teste.IndexOf(">")+1).Trim();
        string valor2 = teste.Split('>')[1].Trim();

        Console.WriteLine("Com indexof: "+ valor);
        Console.WriteLine("Com Split: "+ valor2);
    }
}

Upshot:

With Indexof: Fiscal Mestre

Com Split: Tax Master

I put it on Dotnetfiddle: https://dotnetfiddle.net/1rOqhB

1

A way VERY SIMPLE to do this is to use the replace():

Ex1 = "Aprovados por autorizantes da aplicação -> Fiscal Mestre"
Ex2 = "Aprovados por autorizantes da aplicação -> Analista CAU"
Ex3 = "Aprovados por autorizantes da aplicação -> ESCR-PREC-PILOTO"

Ex1 = Ex1.Replace("Aprovados por autorizantes da aplicação -> ", string.Empty);
Ex2 = Ex2.Replace("Aprovados por autorizantes da aplicação -> ", string.Empty);
Ex3 = Ex3.Replace("Aprovados por autorizantes da aplicação -> ", string.Empty);

Browser other questions tagged

You are not signed in. Login or sign up in order to post.