C# ::: Dicas & Truques ::: Strings e Caracteres |
Como testar a ocorrência de uma substring em uma string do C# usando o método Contains() da classe StringQuantidade de visualizações: 172 vezes |
Nesta dica mostrarei como usar o método Contains() da classe String do C# para verificar se uma letra ou palavra está contida em uma frase ou texto. Se a substring for encontrada, a função Contains() retorna um valor true (verdadeiro), e false (falso) em caso contrário. Veja o exemplo completo: using System; namespace Estudos { class Program { static void Main(string[] args) { string frase = "Gosto de programar em C#"; // a frase contém a palavra "programar"? if (frase.Contains("programar")) { Console.WriteLine("A palavra pesquisada está contida na string"); } // a palavra pesquisada não foi encontrada na string else { Console.WriteLine("A palavra pesquisada NÃO está contida na string"); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: A palavra pesquisada está contida na string Tenha em mente que o método Contains() da classe String do C# diferencia letras maiúsculas de letras minúsculas. |
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como remover os espaços em excesso de uma string e deixar apenas um espaço entre as palavras usando a função preg_replace() e expressões regulares do PHPQuantidade de visualizações: 252 vezes |
Nesta dica mostrarei como é possível tirar proveito da função preg_replace() da linguagem PHP para retirar os espaços em excesso de uma frase ou texto. Note o uso da função trim() para remover também os espaços antes e depois da frase ou texto. Veja o código completo para o exemplo: <?php // uma frase com excesso de espaços // vamos deixar apenas um espaço entre as palavras $frase = " Gosto muito de programar em PHP "; $frase2 = trim(preg_replace('/\s\s+/',' ', $frase)); echo "Com espaços: " . $frase . "<br>"; echo "Sem espaços: " . $frase2; ?> Ao executar este código PHP nós teremos o seguinte resultado: Com espaços: Gosto muito de programar em PHP Sem espaços: Gosto muito de programar em PHP Pode ser necessário você olhar no código fonte da página HTML para visualizar melhor o resultado. |
QGIS ::: PyQGIS API ::: Shapefiles, Camadas Vetoriais, Dados Vetoriais |
Como carregar um shapefile no QGIS usando o objeto QgsVectorLayer da PyQGIS APIQuantidade de visualizações: 458 vezes |
Nesta dica mostrarei como podemos usar o objeto QgsVectorLayer da PyQGIS API para carregar um arquivo shapefile no QGIS e adicioná-lo como uma nova camada. O primeiro passo é fornecer a localização do arquivo shapefile (.shp), o nome para a nova camada e um data provider, que nesse caso é ogr. Depois de obtido o objeto QgsVector nós efetuamos uma chamada à função isValid() para verificar se a camada é válida. Esse procedimento deve ser sempre usado, pois assegura que os dados são válidos antes de continuar com a execução do código. Para finalizar nós usamos a função addMapLayer() do objeto QgsProject para adicionar a nova camada à coleção de camadas e a exibimos no mapa. Veja o código PyQGIS completo para o exemplo: # vamos criar um novo objeto QgsVectorLayer com o local # do nosso shapefile camada = QgsVectorLayer("C:\\dados\\GO_Municipios_2022.shp", "Municípios Estado de Goiás", "ogr") # vamos testar se a camada é válida if not camada.isValid(): print("Não foi possível carregar a camada %s" % camada.name()) else: # vamos adicionar a camada à relação de camadas QgsProject.instance().addMapLayer(camada) Ao executarmos esse código PyQGIS no QGIS nós temos como resultado um mapa do Estado de Goiás com os seus 246 municípios. |
Ruby ::: Dicas & Truques ::: Data e Hora |
Como retornar a data e hora atual em Ruby usando os métodos new e now da classe TimeQuantidade de visualizações: 9548 vezes |
Quando precisamos obter a data e hora atual, o Ruby nos fornece dois métodos muito úteis e presentes na classe Time: new e now. Ambos retornam um objeto da classe Time representando a data e hora atual no sistema no qual o programa Ruby está sendo executado. Veja uma demonstração destes métodos no trecho de código a seguir: # obtém a data e hora atual usando o método new agora = Time.new # exibe o resultado puts "Usando new: " + agora.strftime("%d/%m/%Y - %H:%M:%S") # obtém a data e hora atual usando o método now agora = Time.now # exibe o resultado puts "Usando now: " + agora.strftime("%d/%m/%Y - %H:%M:%S") Ao executar este código Ruby nós teremos o seguinte resultado: Usando new: 21/03/2021 - 17:00:09 Usando now: 21/03/2021 - 17:00:09 |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como remover quebras de linhas de uma string - Como usar o método replaceAll() da classe String para remover quebras de linha de um texto - RevisadoQuantidade de visualizações: 19 vezes |
Nesta dica eu mostro como podemos usar o método replaceAll() da classe String para remover quebras de linha de uma palavra, frase ou texto. Veja:package arquivodecodigos; public class Estudos{ public static void main(String[] args){ String original = "Programar em Java\n é mais fácil do\n que você pensa."; // vamos exibir a String original System.out.println("Original: " + original); // agora vamos remover as quebras de linha String nova = original.replaceAll("[\\n]", ""); // vamos exibir a String sem as quebras de linha System.out.println("Sem quebras de linha: " + nova); System.exit(0); } } Este código exibirá o seguinte resultado: Original: Programar em Java é mais fácil do que você pensa. Sem quebras de linha: Programar em Java é mais fácil do que você pensa. Esta dica foi revisada e atualizada para o Java 8. |
Java ::: Tratamento de Erros ::: Erros de Tempo de Execução |
Como tratar o erro IndexOutOfBoundsException do Java - A exceção IndexOutOfBoundsException da linguagem JavaQuantidade de visualizações: 17660 vezes |
A exceção IndexOutOfBoundsException é uma exceção (erro) que acontece quando fornecemos um índice fora dos limites permitidos para o acesso de elementos em um vetor, matriz, string ou demais coleções. Lembre-se de que os índices em Java começam em 0 e vão até a quantidade de elementos menos 1. Antes de vermos os exemplos, observe a posição da classe pública IndexOutOfBoundsException na hierarquia de classes da plataforma Java: java.lang.Object java.lang.Throwable java.lang.Exception java.lang.RuntimeException java.lang.IndexOutOfBoundsException Esta classe implementa a interface Serializable e possui duas sub-classes conhecidas: ArrayIndexOutOfBoundsException e StringIndexOutOfBoundsException. Veja um exemplo no qual tentamos acessar um elemento de um vetor usando um índice inválido: public class Estudos{ public static void main(String args[]){ // um array de quatro elementos int[] valores = {5, 23, 76, 3}; // vamos fornecer um índice inválido System.out.println(valores[4]); System.exit(0); } } Este código compila normalmente. Porém, ao tentarmos executá-lo, temos a seguinte mensagem de erro: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Estudos.main(Estudos.java:7) A forma mais adequada de corrigir este erro é fornecendo um valor de índice que realmente esteja na faixa permitida. Veja agora o mesmo trecho de código usando uma string: public class Estudos{ public static void main(String args[]){ String nome = "Java"; // vamos fornecer um índice inválido System.out.println(nome.charAt(4)); System.exit(0); } } Compile este código e execute-o. Você verá a seguinte mensagem de erro: Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4 at java.lang.String.charAt(Unknown Source) at Estudos.main(Estudos.java:6) Vamos fazer o mesmo usando uma ArrayList: import java.util.ArrayList; public class Estudos{ public static void main(String[] args){ // cria uma ArrayList que conterá strings ArrayList<String> nomes = new ArrayList<String>(); // adiciona itens na lista nomes.add("Carlos"); nomes.add("Maria"); nomes.add("Fernanda"); nomes.add("Osmar"); // fornecemos um índica inválido String nome = nomes.get(4); System.out.println("O valor obtido foi: " + nome); System.exit(0); } } Compile, execute e veja a mensagem de erro: Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 4, Size: 4 at java.util.ArrayList.RangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at Estudos.main(Estudos.java:15) Veja que no caso do vetor, a exceção lançada foi ArrayIndexOutOfBoundsException, no caso da string a exceção foi StringIndexOutOfBoundsException e no caso do ArrayList tivemos IndexOutOfBoundsException. Resolvemos abordar estas três exceções em apenas uma anotação para que você perceba a semelhança entre elas. |
C# ::: Namespace System.Drawing ::: Graphics |
C# Windows Forms - Como passar um objeto da classe Graphics como argumento para um método e usá-lo para desenhar na superfície do formulárioQuantidade de visualizações: 6204 vezes |
Em algumas situações gostaríamos de escrever um método que recebe um objeto da classe Graphics como argumento e usar este objeto para alguma tarefa, por exemplo, desenhar na superfície do formulário. Nesta dica eu mostro como isso é possível. Comece escrevendo o seguinte método:// um método que recebe um objeto da classe Graphics private void desenhar(ref Graphics g){ // vamos desenhar uma linha horizontal de 300 pixels na // cor preta e espessura de 1 pixel g.DrawLine(new Pen(Color.Black, 1), new Point(20, 80), new Point(320, 80)); // vamos liberar o objeto Graphics g.Dispose(); } Note que, na definição do parâmetro do método nós usamos a palavra-chave ref. Isso foi necessário porque queremos que o objeto Graphics seja passado por referência, uma vez que o estamos liberando dentro do corpo do método com uma chamada ao método Dispose(). Veja agora como obter o objeto Graphics relacionado ao formulário atual e passá-lo ao método desenhar(): private void button1_Click_1(object sender, EventArgs e){ // vamos obter o objeto Graphics relacionado ao formulário atual Graphics graphics = this.CreateGraphics(); // vamos passar o objeto Graphics para o método desenhar desenhar(ref graphics); } |
MySQL ::: Dicas & Truques ::: Data e Hora |
Como adicionar horas, dias, semanas, meses, anos, etc, ao valor de um campo DATE ou DATETIME usando a função DATE_ADD() do MySQLQuantidade de visualizações: 11401 vezes |
A função DATE_ADD() é muito útil quando precisamos adicionar horas, dias, semanas, meses, etc, ao valor de um campo do tipo DATE ou DATETIME. Esta função é composta de três partes:DATE_ADD(date, INTERVAL expr unit) O argumento date deve ser do tipo DATE ou DATETIME. O argumento expr indica um número inteiro que indica a quantidade de horas, dias, meses, etc, que será usada como intervalo. O argumento unit indica a unidade a ser usada. Valores possíveis são: HOUR, DAY, WEEK, MONTH, QUARTER, YEAR, etc. Veja um exemplo no qual adicionamos 15 dias à data atual: SELECT DATE_ADD(NOW(), INTERVAL 15 DAY) Suponha que você tenha um campo chamado data_hora_compra do tipo DATETIME e que este campo tenha o valor 2008-03-30 02:30:15. A query: SELECT DATE_ADD(data_hora_compra, INTERVAL 2 MONTH) FROM tabela_estudos retornará 2008-05-30 02:30:15. |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é par ou ímpar em JavaQuantidade de visualizações: 45427 vezes |
Boa parte das listas de exercícios de Java básico contém um enunciado pedindo para o seu programa ler um número inteiro e informar se o mesmo é par ou ímpar. Esse teste é feito usando-se o operador de módulo (%) da linguagem Java. Este operador retorna o resultado de uma divisão por inteiros, ou seja, se dividirmos 5 por 2, o resultado da divisão inteira será dois e o resto 1, indicando que o número informado não é par. Veja o código completo para um exemplo: package arquivodecodigos; import java.util.*; public class Estudos{ public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.print("Informe um valor inteiro: "); int num = input.nextInt(); if(num % 2 == 0){ System.out.print("Você informou um numero par"); } else{ System.out.print("Você informou um numero impar"); } System.exit(0); } } Ao executarmos este código Java nós teremos o seguinte resultado: Informe um valor inteiro: 5 Você informou um numero impar |
Python ::: Tkinter GUI Toolkit ::: Entry |
Como setar o foco em uma caixa de texto Entry do Tkinter usando a função focus_set()Quantidade de visualizações: 1247 vezes |
Em várias situações durante o processo de programação em Tkinter nós precisamos, via programação, trocar o foco de uma caixa de texto para outra. Isso pode ser feito com o auxílio da função focus_set(). No código abaixo nós temos uma janela Tkinter com duas caixas de texto Entry e um botão Button. Experimente digitar conteúdo nas duas caixas de texto e depois clicar no botão. Você verá que o foco é colocado novamente na primeira caixa de texto. Veja o código Python completo: # vamos importar o módulo Tkinter from tkinter import * from tkinter.ttk import * # variáveis globais caixa_texto_1 = None # método principal def main(): # acessamos a variável global global caixa_texto_1 # vamos criar o frame principal da aplicação Tkinter janela = Tk() # agora definimos o tamanho da janela janela.geometry("600x400") # criamos uma caixa de texto Entry de linha única caixa_texto_1 = Entry(janela, width=40) caixa_texto_1.grid(column=0, row=0, sticky=W, padx=15, pady=10) # criamos uma segunda caixa de texto Entry de linha única caixa_texto_2 = Entry(janela, width=40) caixa_texto_2.grid(column=0, row=1, sticky=W, padx=15, pady=0) # vamos criar um botão Button btn = Button(janela, text="Definir Foco", width=20, command=definir_foco) btn.grid(column=0, row=2, sticky=W, padx=15, pady=10) # entramos no loop da aplicação janela.mainloop() # função para definir o foco na primeira caixa de texto def definir_foco(): # definimos o foco na primeira caixa de texto Entry caixa_texto_1.focus_set() if __name__== "__main__": main() |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como exibir apenas dois dígitos após o ponto decimal em JavaScript usando a função toFixed() do objeto Number JavaScript - JavaScript para iniciantes - Como usar o método escape() para codificar uma frase em JavaScript |
Você também poderá gostar das dicas e truques de programação abaixo |
JavaScript - JavaScript Avançado - Como usar o operador de bits & (E/AND sobre bits) da linguagem JavaScript C# - C# Windows Forms para iniciantes - Como limpar todo o conteúdo de um controle TextBox via código VB.NET - Como comparar strings em VB.NET usando o método Equals() da classe String do .NET Framework C++ - Como obter o diretório atual usando a função GetCurrentDirectory() da API do Windows - C++ e WinAPI |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |