Você está aqui: C# ::: Dicas & Truques ::: Strings e Caracteres |
Como embaralhar os caracteres de uma string em C# usando um objeto da classe RandomQuantidade 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 |
![]() |
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 StringQuantidade 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 StringQuantidade 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 StringQuantidade 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 StringQuantidade 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 StringQuantidade 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 WindowsQuantidade 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 registrosQuantidade 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 |
JavaScript - JavaScript Avançado - Como usar o operador de bits & (E/AND sobre bits) da linguagem JavaScript |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |