Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: C# ::: Dicas & Truques ::: Strings e Caracteres

Como embaralhar os caracteres de uma string em C# usando um objeto da classe Random

Quantidade de visualizações: 10923 vezes
Nesta dica mostrarei como podemos embaralhar os caracteres de uma palavra, frase ou texto na linguagem C#. Para isso nós faremos uso do método ToCharArray() da classe String para extrair os caracteres da string como um vetor de chars.

Em seguida usaremos um objeto da classe Random para gerar números randômicos que serão usados para auxiliar na troca dos caracteres contidos no vetor.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      string palavra = "ARQUIVO";

      // converte em uma matriz de caracteres
      char[] letras = palavra.ToCharArray();

      // mostramos a palavra original
      Console.WriteLine("Palavra original: " + palavra);

      // vamos embaralhar 5 vezes
      embaralhar(ref letras, 5);

      // junta as partes da string novamente
      string nova_palavra = new String(letras);

      // exibe o resultado
      Console.WriteLine("Palavra embaralhada: " + nova_palavra);

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }

    static void embaralhar(ref char[] array, int vezes) {
      Random rand = new Random(DateTime.Now.Millisecond);

      for (int i = 1; i <= vezes; i++) {
        for (int x = 1; x <= array.Length; x++) {
          trocar(ref array[rand.Next(0, array.Length)],
            ref array[rand.Next(0, array.Length)]);
        }
      }
    }

    static void trocar(ref char arg1, ref char arg2) {
      char strTemp = arg1;
      arg1 = arg2;
      arg2 = strTemp;
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

Palavra original: ARQUIVO
Palavra embaralhada: UVIARQO

Link para compartilhar na Internet ou com seus amigos:

C# ::: Dicas & Truques ::: Strings e Caracteres

Como transformar todo o conteúdo de uma string para letras maiúsculas em C# usando a função ToUpper() da classe String

Quantidade de visualizações: 9732 vezes
Em algumas situações nós precisamos converter todas as letras de uma palavra, frase ou texto para letras maiúsculas. Isso pode ser feito por meio do método ToUpper() da classe String da linguagem C#.

Veja o exemplo a seguir:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string texto = "Gosto de programar em C#";
      Console.WriteLine("Sem converter para letras maiúsculas: " +
        texto);

      // converte tudo para letras maiúsculas
      texto = texto.ToUpper();
      Console.WriteLine("Após a conversão para letras maiúsculas: " +
        texto);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

Sem converter para letras maiúsculas: Gosto de programar em C#
Após a conversão para letras maiúsculas: GOSTO DE PROGRAMAR EM C#


C# ::: Dicas & Truques ::: Strings e Caracteres

Como testar se uma substring está contida no final de uma string C# usando o método EndsWith() da classe String

Quantidade de visualizações: 56 vezes
Em algumas situações nós precisamos verificar se uma palavra, frase ou texto termina com um caractere ou uma determinada substring. Para isso nós podemos usar o método EndsWith() da classe String da linguagem C#.

Veja o exemplo a seguir:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string texto = "Gosto de programar em C#";

      if (texto.EndsWith("C#")) {
        Console.WriteLine("O texto termina com C#");
      }
      else {
        Console.WriteLine("O texto não termina com C#");
      }

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

O texto termina com C#


C# ::: Dicas & Truques ::: Strings e Caracteres

Como testar se uma string C# começa com uma determinada substring usando o método StartsWith() da classe String

Quantidade de visualizações: 11563 vezes
Em algumas situações nós precisamos verificar se uma palavra, texto ou frase começa com uma determinada substring. Em C# isso pode ser feito por meio da função StartsWith() da classe String. Este método retorna true se a string começar com a substring informada e false em caso contrário.

Veja um código C# completo no qual testamos se uma string começa com a substring "Gosto":

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string texto = "Gosto de programar em C#";

      if (texto.StartsWith("Gosto")) {
        Console.WriteLine("O texto começa com \"Gosto\"");
      }
      else {
        Console.WriteLine("O texto NÃO começa com \"Gosto\"");
      }

      Console.WriteLine();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

O texto começa com "Gosto"


C# ::: Dicas & Truques ::: Strings e Caracteres

Como contar as ocorrências de um caractere em uma string C# usando o método IndexOf() da classe String

Quantidade de visualizações: 16820 vezes
Nesta dica mostrarei como podemos tirar proveito da função IndexOf() da classe String do C# para contar todas as ocorrências de uma letra em uma palavra, texto ou frase. Note que, além de retornar a quantidade de ocorrências do caractere, nós vamos mostrar também o índice de cada ocorrência.

Veja o código C# completo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto muito de C#. E você?";
      char letra = 'o'; // vamos pesquisar a letra "o"
      int quant = 0;
      int pos = -1, pos_ant = -1, cont = 0;

      while (cont < frase.Length) {
        pos = frase.IndexOf(letra, cont);

        if ((pos != pos_ant) && (pos != -1)) {
          Console.WriteLine("\"" + letra + "\" encontrada no índice " +
            pos);
          quant++;
        }

        cont++; // aumenta o contador
        pos_ant = pos;
      }

      Console.WriteLine("Encontrei " + quant + " ocorrências da " +
         "letra " + letra);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

"o" encontrada no índice 1
"o" encontrada no índice 4
"o" encontrada no índice 10
"o" encontrada no índice 22
Encontrei 4 ocorrências da letra o


C# ::: Dicas & Truques ::: Strings e Caracteres

Como contar as palavras de uma frase ou texto em C# usando as funções IndexOf(), Replace() e Split() da classe String

Quantidade de visualizações: 12181 vezes
Este exemplo mostra como retornar a quantidade de palavras em uma frase ou texto usando métodos da classe String do C#. Veja como usar os métodos IndexOf() e Replace() para remover os espaços em excesso e, em seguida, o método Split() para quebrar as partes da frase ou texto usando um único espaço como separador.

Veja o código completo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto muito de C# e Java";
      int cont = 0;

      // remove os espaços em excesso
      while (frase.IndexOf("  ") >= 0) {
        frase = frase.Replace("  ", " ");
      }

      // remove espaços antes e depois da string
      frase = frase.Trim();

      // conta as palavras
      cont = frase.Split(" ").Length;
      Console.WriteLine("A frase contém " + cont + " palavras");

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

A frase contém 6 palavras


C# ::: Windows Forms ::: TextBox

C# Windows Forms Avançado - Como rolar as linhas de um TextBox para o fundo (parte inferior) usando a API do Windows

Quantidade de visualizações: 6893 vezes
Em algumas situações gostaríamos de rolar para baixo (fundo) o conteúdo de um TextBox de múltiplas. Para isso podemos usar a API do Windows, mais especificamente a mensagem WM_VSCROLL com o valor SB_BOTTOM para seu parâmetro wParam. O valor do parâmetro lParam é zero.

Veja um trecho de código que rola para baixo o conteúdo de um TextBox. Antes de executar este exemplo, tenha a certeza de ter um TextBox de múltiplas, com barras de rolagem e conteúdo que force o aparecimento das barras de rolagem.

Comece adicionando a linha:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System.Runtime.InteropServices;

na seção de usings do seu formulário ou classe. Em seguida adicione o trecho de código abaixo no corpo da classe, como um método:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

[DllImport("user32.dll", EntryPoint = "SendMessage", 
  CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, 
  IntPtr wParam, IntPtr lParam);

Finalmente coloque o código abaixo no evento Click de um botão:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

private void button2_Click(object sender, EventArgs e){
  // antes de executar este exemplo certifique-se de que
  // a propriedade Multiline do TextBox esteja definida
  // como true e a propriedade ScrollBars contenha o valor
  // Vertical ou Both
  textBox1.Multiline = true;
  textBox1.ScrollBars = ScrollBars.Vertical;
    
  // constante para a mensagem WM_VSCROLL
  const uint WM_VSCROLL = 0x115;
  // constante para o parâmetro wParam
  const int SB_BOTTOM = 7;
  
  // handle para a caixa de texto
  IntPtr handle = textBox1.Handle;
  IntPtr wParam = (IntPtr)SB_BOTTOM;
  IntPtr lParam = IntPtr.Zero;
  
  // vamos fazer com que o TextBox role para o fundo (parte inferior)
  SendMessage(textBox1.Handle, WM_VSCROLL, wParam, lParam);
}



C# ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar if e if..else em C# - A estrutura condicional if do C#

Quantidade de visualizações: 21814 vezes
A instrução condicional if (se) é usada quando queremos testar uma condição e, baseado nesta, executar alguma ação. Veja:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

static void Main(string[] args){
  int valor = 20;

  // testa se o valor é maior que 10
  if(valor > 10){
    Console.WriteLine("O valor é maior que 10");
  }

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}

Execute o código e veja que o texto "O valor é maior que 10" é exibido somente se o valor da variável valor for maior que 10. Note que neste teste temos somente uma instrução. Neste caso as chaves { e } podem ser omitidas:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

if(valor > 10)
  Console.WriteLine("O valor é maior que 10");

No entanto, quando duas ou mais instrução forem executadas, as chaves { e } são obrigatórias. Note também que o resultado do teste de uma instrução condicional if deve ser sempre true ou false.

A instrução if..else (se..ou então) é útil quando queremos executar uma ação se uma condição for satisfeita e outra ação caso contrário. Veja:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

static void Main(string[] args){
  int valor = 5;

  // testa se o valor é maior que 10
  if(valor > 10){
    Console.WriteLine("O valor é maior que 10");
  }
  else{
    Console.WriteLine("O valor é menor ou igual a 10");
  }

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}

Há ainda os casos em que temos que testar várias condições. Observe:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------
static void Main(string[] args){
  int valor = 8;

  // testa se o valor é maior que 10
  if(valor > 10){
    Console.WriteLine("O valor é maior que 10");
  }
  // testa se o valor é menor que 10
  else if(valor < 10){
    Console.WriteLine("O valor é menor que 10");
  }
  // o valor é igual a 10
  else{
    Console.WriteLine("O valor é igual a 10");
  }

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}



C# ::: Windows Forms ::: DataGridView

Como ligar um DataGridView do C# Windows Forms à tabela de um banco de dados e efetuar inserção, alteração e remoção de registros

Quantidade de visualizações: 32797 vezes
Uma das principais dúvidas que recebo em meu site é em relação aos passos necessários para associar um DataGridView com a tabela de um banco de dados e listar os dados. Em tempo de design este processo é relativamente fácil, visto que temos wizards que nos acompanham e fazem o trabalho mais pesado nos bastidores. No entanto, o cenário é completamente diferente quando temos que realizar tal tarefa via código. Espero que esta dica o deixe mais preparado para enfrentar tais situações.

Para esta dica eu fiz uma conexão Visual C# 2005 + MySQL 5.0 usando ODBC (caso tenha dúvidas sobre isso, veja minha seção sobre C# + MySQL). Criei uma tabela MySQL chamada clientes contendo id, nome, idade, cidade e estado do cliente. Criei uma classe de conexão, inseri um DataGridView no formulário e coloquei as declarações abaixo na classe do formulário Form1.cs (fora dos métodos, para que os dados sejam globais na classe):

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

// membros de instância de acesso global na classe
// Dica: Se estiver usando SQL Server, troque "Odbc" por
// "Sql" (Ex: SQLConnection, SqlCommand, SqlDataAdapter)

// conexão com o banco de dados
OdbcConnection conn = null;
OdbcCommand cmd = null;
OdbcDataAdapter adapter = null;
DataSet ds = null;


Em seguida colocamos o código abaixo no evento Click de um botão:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

private void button4_Click(object sender, EventArgs e){
  // Dica: Se estiver usando SQL Server, troque "Odbc" 
  // por "Sql" (Ex: SqlCommand, SqlDataAdapter, etc)
  
  // obtém a conexão com o banco de dados
  conn = ConexaoODBC.obterConexao();

  if(conn != null){
    // obtém todos os clientes cadastrados
    cmd = new OdbcCommand("SELECT * FROM clientes",
      conn);

    adapter = new OdbcDataAdapter(cmd);
    ds = new DataSet();
    adapter.Fill(ds, "clientes_table");

    // exibe os dados da tabela no DataGridView 
    dataGridView1.DataSource = ds;
    dataGridView1.DataMember = "clientes_table";

    // fecha a conexão
    ConexaoODBC.fecharConexao();
  }
}

Aqui os dados já são listados no DataGridView. Porém, as alterações efetuadas no controle ainda não são repassadas para o banco de dados. Veja o código adicional no evento Click de outro botão:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

private void button5_Click(object sender, EventArgs e){
  // vamos salvar os dados do DataGridView para a tabela do
  // banco de dados
  
  // Dica: Se estiver usando SQL Server, troque "Odbc" por
  // "Sql" (Ex: SqlCommandBuilder)

  // obtém a conexão com o banco de dados
  conn = ConexaoODBC.obterConexao();

  if(conn != null){
    OdbcCommandBuilder cmb = new OdbcCommandBuilder(adapter);
    cmb.GetUpdateCommand();
    adapter.Update(ds.Tables["clientes_table"]);

    // fecha a conexão
    ConexaoODBC.fecharConexao();
  }
}

Pronto! Execute a aplicação, clique no primeiro botão para carregar os dados da tabela MySQL no DataGridView. Em seguida efetue algumas alterações, insira ou exclua linhas e clique no segundo botão. Feche a aplicação e abra-a novamente e se certifique de que os registros foram atualizados, inseridos ou removidos com sucesso.


Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 24 usuários muito felizes estudando em nosso site.