none
Pegar caracteres dentro de uma String C#

    Question

  • Estou tentando fazer o seguinte

    --

    Tenho uma string e quero armazenar uma parte dela em uma variavel

    Exemplo:

    string texto = "bla bla bla bla [34343434] bla bla bla";

     

    Quero armazenar o 34343434 em uma outra string

    Tem como fazer isso?


    http://www.devcursos.com.br
    Friday, July 16, 2010 6:49 PM

Answers

  • Hi,

    faça assim,

    string[] split = texto.Split(new char[] { '[', ']' });

    vai separar o texto em partes, as partes entre os colchetes.

    ai e so pegar o split[1] que vai ser o conteudo entre os colchetes.

    mas caso tenha mais de um colchete abrindo e fechando. ex: aaa[ppp]aaa[ppp]aaa

    voce faz um foreach e pega todos os de index Impar. ex: split[1], split[3], split[5] ...

    List<string> strs = new List<string>();

    foreach(string str in split)

        if (split.ToList().IndexOf(str) % 2 == 0)

            strs.Add(str);

    o strs sao todos os conteudos entre colchetes.

    so um detalhe. esse .ToList() e uma extension que esta no namespace System.Linq.

    e so adicionar um using System.Linq que ele funciona.

    caso nao queira usar o extension do linq troca o foreach por um for

    for (int i = 1; i < split.Length; i += 2)

        strs.Add(split[i]);

    na verdade se for parar para analisar e ate melhor usar o for pois ele so pega os impares. nem precisa do if.

    Att,


    Adriel Codeco Silva
    Email: adriel.silva@uppercase.com.br
    MSN: adrielcodeco@hotmail.com
    Blog: adrielcodeco.wordpress.com
    Uppercase – www.uppercase.com.br

    R. Primeiro de Março, 661 – Centro Barra Bonita - SP - CEP 17340-000
    Friday, July 16, 2010 11:48 PM

All replies

  • Estou tentando fazer o seguinte

    --

    Tenho uma string e quero armazenar uma parte dela em uma variavel

    Exemplo:

    string texto = "bla bla bla bla [34343434] bla bla bla";

     

    Quero armazenar o 34343434 em uma outra string

    Tem como fazer isso?


    http://www.devcursos.com.br

    http://msdn.microsoft.com/en-us/library/ms228362(VS.80).aspx
    Just Be Humble Malange!
    Friday, July 16, 2010 6:51 PM
    Moderator
  • Estou tentando fazer o seguinte

    --

    Tenho uma string e quero armazenar uma parte dela em uma variavel

    Exemplo:

    string texto = "bla bla bla bla [34343434] bla bla bla";

     

    Quero armazenar o 34343434 em uma outra string

    Tem como fazer isso?


    http://www.devcursos.com.br

    http://www.developerfusion.com/code/4398/string-manipulation-in-c/
    Just Be Humble Malange!
    Friday, July 16, 2010 6:52 PM
    Moderator
  • Não é isso, ou não entendi direito
    http://www.devcursos.com.br
    Friday, July 16, 2010 7:21 PM
  • Não teria como fazer com expressão regular?
    http://www.devcursos.com.br
    Friday, July 16, 2010 7:51 PM
  • Ok, mas qual é o criterio par que vc pegue o 34343434?

    É tudo que esta entre [].. é quando for mumerico...

     

    Nos de mais detalhes do que vc quer fazer, se possivel com exemplos reais. Só assim poderemos saber se existe uma expressao regular que se encaixe para resolver este seu problema

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Friday, July 16, 2010 8:08 PM
    Moderator
  • Não sei se tem como ser em expressão regular, mas é basicamente isso

    string texto = "bla bla bla bla [34343434] bla bla bla [234234werwerwer] bla bla bla bla";

    quero enviar os valores 34343434 e 234234werwerwer para um método

    Não precisa ser exatamente dentro de [] pode ser qualquer item, mas que eu determine () {} 

    fazer foreach ou um for, ainda é um esperimento


    http://www.devcursos.com.br
    Friday, July 16, 2010 8:12 PM
  • Bom, entao a regra é tudo que estiver entre colchetes certo?

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Friday, July 16, 2010 8:14 PM
    Moderator
  • correto, isso memso
    http://www.devcursos.com.br
    Friday, July 16, 2010 8:27 PM
  • Hi,

    faça assim,

    string[] split = texto.Split(new char[] { '[', ']' });

    vai separar o texto em partes, as partes entre os colchetes.

    ai e so pegar o split[1] que vai ser o conteudo entre os colchetes.

    mas caso tenha mais de um colchete abrindo e fechando. ex: aaa[ppp]aaa[ppp]aaa

    voce faz um foreach e pega todos os de index Impar. ex: split[1], split[3], split[5] ...

    List<string> strs = new List<string>();

    foreach(string str in split)

        if (split.ToList().IndexOf(str) % 2 == 0)

            strs.Add(str);

    o strs sao todos os conteudos entre colchetes.

    so um detalhe. esse .ToList() e uma extension que esta no namespace System.Linq.

    e so adicionar um using System.Linq que ele funciona.

    caso nao queira usar o extension do linq troca o foreach por um for

    for (int i = 1; i < split.Length; i += 2)

        strs.Add(split[i]);

    na verdade se for parar para analisar e ate melhor usar o for pois ele so pega os impares. nem precisa do if.

    Att,


    Adriel Codeco Silva
    Email: adriel.silva@uppercase.com.br
    MSN: adrielcodeco@hotmail.com
    Blog: adrielcodeco.wordpress.com
    Uppercase – www.uppercase.com.br

    R. Primeiro de Março, 661 – Centro Barra Bonita - SP - CEP 17340-000
    Friday, July 16, 2010 11:48 PM
  • Hi,

    faça assim,

    string[] split = texto.Split(new char[] { '[', ']' });

    vai separar o texto em partes, as partes entre os colchetes.

    ai e so pegar o split[1] que vai ser o conteudo entre os colchetes.

    mas caso tenha mais de um colchete abrindo e fechando. ex: aaa[ppp]aaa[ppp]aaa

    voce faz um foreach e pega todos os de index Impar. ex: split[1], split[3], split[5] ...

    List<string> strs = new List<string>();

    foreach(string str in split)

        if (split.ToList().IndexOf(str) % 2 == 0)

            strs.Add(str);

    o strs sao todos os conteudos entre colchetes.

    so um detalhe. esse .ToList() e uma extension que esta no namespace System.Linq.

    e so adicionar um using System.Linq que ele funciona.

    caso nao queira usar o extension do linq troca o foreach por um for

     

    for (int i = 1; i < split.Length; i += 2)

        strs.Add(split[i]);

    na verdade se for parar para analisar e ate melhor usar o for pois ele so pega os impares. nem precisa do if.

     

    Att,


    Adriel Codeco Silva
    Email: adriel.silva@uppercase.com.br
    MSN: adrielcodeco@hotmail.com
    Blog: adrielcodeco.wordpress.com
    Uppercase – www.uppercase.com.br

    R. Primeiro de Março, 661 – Centro Barra Bonita - SP - CEP 17340-000


    Cara vou te fazer uma pergunta

    tenho uma string da seguinte maneira

    Cliente: Lucas Demetrius Carvalho de Jesus Carro:Fieste Cor: Vermelho  Ano:2000

    quero pegar assim

    string[] split = texto.Split(new char[] { 'Cliente:', 'Carro:' });

    para ele pegar o valor que esta depois de Cliente: e antes de Carro:

     

    Tem como

    Valeu


    Lucas Demetrius
    Monday, August 01, 2011 2:45 PM