none
Como contar Palavras em TexBox C# ?????? RRS feed

  • Pergunta

  • Olá pessoal Bom dia, preciso da ajuda de vocês, estou com um probleminha aqui para contar Palavras de um textbox.

    Funciona assim no textbox1 está configurado para ele remover uma determinada letra se for preenchido Ex:

    textBox1.Text = textBox1.Text.Replace("C", "");

    //então toda vez que ele for preenchido com a letra C,

    ele removera do textbox.

    E com um botão eu abro uma MessageBox.Show para exibir o resultado EX:

    private void button1_Click(object sender, EventArgs e){
      // Obtém o texto da caixa de texto
      string texto = textBox1.Text.Trim();
    
      // Remove as quebras de linhas substituindo-as por
      // espaços
      texto = texto.Replace(Environment.NewLine, " ");
    
      // remove os espaços em excesso
      while(texto.IndexOf("  ") >= 0)
        texto = texto.Replace("  ", " ");
    
      // Obtém um array de palavras
      string[] palavras = texto.Split(' ');
    
      // Obtém a quantidade de palavras
      int quant = palavras.Length;
    
      // Exibe o resultado
      MessageBox.Show("O TextBox contém " + quant + 
        " palavras.");
    }
    PORÉM, MESMO O TEXTBOX ESTANDO VÁZIO ELE INFORMA QUE TEM UMA PALAVRA. Onde está o erro pessoal ???? Agradeço desde Já


    PatrickALima



    • Editado Patrick A Lima quarta-feira, 14 de janeiro de 2015 12:59 Correção
    quarta-feira, 14 de janeiro de 2015 12:57

Respostas

  • Patrick,

    Veja o método, aqui funcionou perfeitamente vazio e com palavras:

    https://dotnetfiddle.net/qUhTua

    Espero ter ajudado.


    Wesley Lisboa

    • Sugerido como Resposta Wesley Lisboa quarta-feira, 14 de janeiro de 2015 18:56
    • Marcado como Resposta Patrick A Lima quinta-feira, 15 de janeiro de 2015 12:52
    quarta-feira, 14 de janeiro de 2015 17:25

Todas as Respostas

  • Teste ai para ver se funciona:

    private void button1_Click(object sender, EventArgs e){
      // Obtém o texto da caixa de texto
      string texto = textBox1.Text.Trim();
    
      // Remove as quebras de linhas substituindo-as por
      // espaços
      texto = texto.Replace("\n", " ");
    
      // remove os espaços em excesso
        texto = texto.Trim();
    
      // Obtém um array de palavras
      string[] palavras = texto.Split(' ');
    
      // Obtém a quantidade de palavras
      int quant = palavras.Trim().Length;
    
      // Exibe o resultado
      MessageBox.Show("O TextBox contém " + quant + 
        " palavras.");
    }

    quarta-feira, 14 de janeiro de 2015 13:21
  • Patrick,

    Bom dia..

    Tente assim:

     // Obtém um array de palavras
     
    string[] palavras = texto.Split(new Char [] {' '});

           

    Abraços


    Marcio S Silva | MCP |marsosil@ovi.com|http://marsosi.blogspot.com.br

    • Sugerido como Resposta Márcio S Silva quarta-feira, 14 de janeiro de 2015 13:34
    quarta-feira, 14 de janeiro de 2015 13:34
  • Pessoal infelizmente nenhum código funcionou, o ultimo código não esta funcionando, o segundo dá erro no // Obtém a quantidade de palavras
     
    int quant = palavras.Trim().Length;

    não consegui usar o segundo código


    PatrickALima

    quarta-feira, 14 de janeiro de 2015 15:29
  • Ola, cara tente fazer um tratamento para não receber texto vazios, pois pode ser q durante sua logica ele acabe adicionando algum caractere especial no texto, então para garantir  :

    if (textbox1.text != String.Empty || textbox1.text != ""){//essas duas validações é para tentar cobri o máximo possível

    //so entra aqui se tiver algum texto

    //adicione sua logica aqui

    }

    espero ter ajudado

    quarta-feira, 14 de janeiro de 2015 16:03
  • Patrick,

    Veja o método, aqui funcionou perfeitamente vazio e com palavras:

    https://dotnetfiddle.net/qUhTua

    Espero ter ajudado.


    Wesley Lisboa

    • Sugerido como Resposta Wesley Lisboa quarta-feira, 14 de janeiro de 2015 18:56
    • Marcado como Resposta Patrick A Lima quinta-feira, 15 de janeiro de 2015 12:52
    quarta-feira, 14 de janeiro de 2015 17:25
  • Muito Obrigado Wesley Lisboa, Funcionou perfeitamente, você me ajudou e muito. :-)

    PatrickALima

    quinta-feira, 15 de janeiro de 2015 12:53