none
Capturar caracteres em uma sting. RRS feed

  • Pergunta

  • Ola,

    estou precisando capturar uma parte de uma string CPxxxxvCPxxxxVCPxxxxV. O que me interessa esta ente o P e o V

    Como consigo fazer isso?

    Desde de já agradeço a ajuda.

    Abracos,

    Marcelo

    domingo, 27 de abril de 2014 04:57

Respostas

  • Boa noite,

    Você pode utilizar a função indexOf para pegar o índice do seu caractere chave ou pode usar split para gerar uma array com strings separadas por seu caractere. 

    Se você quiser entre "VCP" e V pode-se fazer desse jeito: 

    string palavra = "CPxxxxvCPxxxxVCPxxxxV";
    
                int indiceInicial = palavra.IndexOf("VCP");
                int tamanhoDaPalavra = palavra.Length;
    
    
                Console.WriteLine(palavra.Substring(indiceInicial, tamanhoDaPalavra - indiceInicial));
    
                Console.ReadLine();

    Se quiser entre o primeiro P e o V, fica assim: 

    string palavra = "CPxxxxvCPxxxxVCPxxxxV";
    
                int indiceInicial = palavra.IndexOf("P");
                int indiceFinal= palavra.IndexOf("V");
    
    
                Console.WriteLine(palavra.Substring(indiceInicial, indiceFinal));
    
                Console.ReadLine();

    Abraços


    domingo, 27 de abril de 2014 22:21
  • Olá Marcelo,

    você consegue fazer isso indicando por qual caractere você quer começar e por qual caractere você quer finalizar sua busca dentro de uma string. Esse é um código bem simples de se fazer, porém, você não especificou a linguagem que você está usando. Postarei um exemplo em C# que você pode facilmente traduzi-lo para VB.Net ou qualquer outra.

    string Palavra = "CPxxxxvCPxxxxVCPxxxxV";
                string Result = "";
    
                
                for (int i = 0; i < Palavra.Length; i++) //Percorrendo String caractere por carectere
                {
                  if (Palavra.Substring(i, 1).ToUpper() == "P") //verificando primeira ocorrencia de 'P'
                  {
                      int k = Palavra.ToUpper().IndexOf("V", i); //Verificando primeira ocorrencia de 'V' após o P
                      Result = Palavra.Substring(i+1, k -(i +1)); //capturando o que está entre 
                      break;
                  }              
                }
                MessageBox.Show(Result);
    Neste exemplo estou verificando somente a primeira ocorrência de P e V. Adaptando o código você consegue verificar todas as ocorrências de P e V. Agora é com você.


    Wennder Santos



    • Editado Wennder SantosMVP domingo, 27 de abril de 2014 23:57
    • Marcado como Resposta Giovani Cr segunda-feira, 28 de abril de 2014 14:51
    domingo, 27 de abril de 2014 23:54

Todas as Respostas

  • Boa noite,

    Você pode utilizar a função indexOf para pegar o índice do seu caractere chave ou pode usar split para gerar uma array com strings separadas por seu caractere. 

    Se você quiser entre "VCP" e V pode-se fazer desse jeito: 

    string palavra = "CPxxxxvCPxxxxVCPxxxxV";
    
                int indiceInicial = palavra.IndexOf("VCP");
                int tamanhoDaPalavra = palavra.Length;
    
    
                Console.WriteLine(palavra.Substring(indiceInicial, tamanhoDaPalavra - indiceInicial));
    
                Console.ReadLine();

    Se quiser entre o primeiro P e o V, fica assim: 

    string palavra = "CPxxxxvCPxxxxVCPxxxxV";
    
                int indiceInicial = palavra.IndexOf("P");
                int indiceFinal= palavra.IndexOf("V");
    
    
                Console.WriteLine(palavra.Substring(indiceInicial, indiceFinal));
    
                Console.ReadLine();

    Abraços


    domingo, 27 de abril de 2014 22:21
  • Olá Marcelo,

    você consegue fazer isso indicando por qual caractere você quer começar e por qual caractere você quer finalizar sua busca dentro de uma string. Esse é um código bem simples de se fazer, porém, você não especificou a linguagem que você está usando. Postarei um exemplo em C# que você pode facilmente traduzi-lo para VB.Net ou qualquer outra.

    string Palavra = "CPxxxxvCPxxxxVCPxxxxV";
                string Result = "";
    
                
                for (int i = 0; i < Palavra.Length; i++) //Percorrendo String caractere por carectere
                {
                  if (Palavra.Substring(i, 1).ToUpper() == "P") //verificando primeira ocorrencia de 'P'
                  {
                      int k = Palavra.ToUpper().IndexOf("V", i); //Verificando primeira ocorrencia de 'V' após o P
                      Result = Palavra.Substring(i+1, k -(i +1)); //capturando o que está entre 
                      break;
                  }              
                }
                MessageBox.Show(Result);
    Neste exemplo estou verificando somente a primeira ocorrência de P e V. Adaptando o código você consegue verificar todas as ocorrências de P e V. Agora é com você.


    Wennder Santos



    • Editado Wennder SantosMVP domingo, 27 de abril de 2014 23:57
    • Marcado como Resposta Giovani Cr segunda-feira, 28 de abril de 2014 14:51
    domingo, 27 de abril de 2014 23:54