Java ::: Dicas & Truques ::: Strings e Caracteres |
Como comparar strings em Java usando o método equals() da classe StringQuantidade de visualizações: 316 vezes |
Em várias ocasiões nós precisamos efetuar a comparação de textos, frases ou palavras em Java. Para isso nós podemos usar o método equals() da classe String. Esta função recebe as duas strings a serem testadas e retorna true se as duas strings forem iguais e false em caso contrário. Veja um exemplo de seu uso: // Este exemplo mostra como comparar duas strings // em Java usando o método equals() package arquivodecodigos; public class Estudos{ public static void main(String[] args) { // vamos declarar duas strings String s1 = "Gosto de Java"; String s2 = "Gosto de java"; // e agora vamos verificar se as duas são iguais if(s1.equals(s2)){ System.out.println("As duas strings são iguais"); } else{ System.out.println("As duas strings são diferentes"); } System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: As duas strings são diferentes. É importante ter em mente que o método equals() diferencia maiúsculas de minúsculas. |
Java ::: Dicas & Truques ::: Fuso Horários |
Como retornar uma lista de todos os IDs de fusos horários suportados pela linguagem Java usando o método getAvailableIDs() da classe TimeZoneQuantidade de visualizações: 9020 vezes |
A linguagem Java, por meio da classe TimeZone, nos permite trabalhar com uma enorme variedade de fusos horários. No entanto, antes de assumir que um determinado fuso horário é suportado, é interessante verificar se tal fuso horário está na lista de IDs suportados. Isso pode ser feito com uma chamada ao método estático getAvailableIDs(). Este método retorna o ID de todos os fusos horários suportados. Veja um exemplo de como usá-lo:import java.util.*; public class Estudos{ public static void main(String args[]){ // obtém todos os IDs de fusos horários // disponíveis na classe TimeZone String fusos[] = TimeZone.getAvailableIDs(); for(int i = 0; i < fusos.length; i++){ System.out.println(fusos[i]); } } } Ao executar este código você terá um resultado semelhante à (optamos por listar apenas os 100 primeiros resultados): Etc/GMT+12 Etc/GMT+11 MIT Pacific/Apia Pacific/Midway Pacific/Niue Pacific/Pago_Pago Pacific/Samoa US/Samoa America/Adak America/Atka Etc/GMT+10 HST Pacific/Fakaofo Pacific/Honolulu Pacific/Johnston Pacific/Rarotonga Pacific/Tahiti SystemV/HST10 US/Aleutian US/Hawaii Pacific/Marquesas AST America/Anchorage America/Juneau America/Nome America/Yakutat Etc/GMT+9 Pacific/Gambier SystemV/YST9 SystemV/YST9YDT US/Alaska America/Dawson America/Ensenada America/Los_Angeles America/Tijuana America/Vancouver America/Whitehorse Canada/Pacific Canada/Yukon Etc/GMT+8 Mexico/BajaNorte PST PST8PDT Pacific/Pitcairn SystemV/PST8 SystemV/PST8PDT US/Pacific US/Pacific-New America/Boise America/Cambridge_Bay America/Chihuahua America/Dawson_Creek America/Denver America/Edmonton America/Hermosillo America/Inuvik America/Mazatlan America/Phoenix America/Shiprock America/Yellowknife Canada/Mountain Etc/GMT+7 MST MST7MDT Mexico/BajaSur Navajo PNT SystemV/MST7 SystemV/MST7MDT US/Arizona US/Mountain America/Belize America/Cancun America/Chicago America/Costa_Rica America/El_Salvador America/Guatemala America/Indiana/Knox America/Indiana/Petersburg America/Indiana/Vincennes America/Knox_IN America/Managua America/Menominee America/Merida America/Mexico_City America/Monterrey America/North_Dakota/Center America/North_Dakota/New_Salem America/Rainy_River America/Rankin_Inlet America/Regina America/Swift_Current America/Tegucigalpa America/Winnipeg CST CST6CDT Canada/Central Canada/East-Saskatchewan Canada/Saskatchewan Chile/EasterIsland Um bom uso deste método é quando estamos desenvolvendo uma aplicação que mostra o horário ao redor do mundo. Podemos ter uma lista de fusos horários e, mediante a seleção do usuário, fornecer o valor selecionado para o método setTimeZone() da classe Calendar, por exemplo. |
Java ::: Pacote java.net ::: HttpURLConnection |
Como usar o método GET da classe HttpURLConnection do Java para enviar dados a uma página PHP, JSP, ASP.NET, etcQuantidade de visualizações: 6916 vezes |
Em algumas situações gostaríamos de enviar uma solicitação HTTP do tipo GET a uma página PHP, JSP, ASP.NET, etc, a partir de nossos programas Java. Para isso podemos usar um objeto da classe HttpURLConnection. Para este exemplo eu mostrarei como enviar uma requisição GET para uma página PHP e retornar o resultado da soma de dois números. Comece analisando o código para o documento somar.php: <?php // obtém o primeiro valor $a = (int)$_GET["a"]; // obtém o primeiro valor $b = (int)$_GET["b"]; // vamos somar e mostrar o resultado $soma = $a + $b; echo "A soma dos dois números é: " . $soma; ?> Este código PHP não apresenta muitos segredos: obtemos dois números passados via GET, efetuamos a soma dos dois e escrevemos o resultado na página. Veja agora o código completo para a aplicação Java: package arquivodecodigos; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class Principal { public static void main(String[] args) { int n1 = 10, n2 = 25; URL url; HttpURLConnection connection = null; BufferedReader in = null; try { url = new URL("http://www.arquivodecodigos.com.br/somar.php?a=" + n1 + "&b=" + n2); // vamos efetuar a conexão à URL especificada connection = (HttpURLConnection)url.openConnection(); // em alguns servidores nós precisamos adicionar o User-Agent para evitar // o erro 403 Forbidden // HttpURLConnection : Server return HTTP 403 Forbidden connection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; " + "WOW64; rv:221.0) Gecko/20100101 Firefox/31.0"); // vamos obter o retorno da conexão String linha; in = new BufferedReader(new InputStreamReader(connection.getInputStream())); while((linha = in.readLine()) != null) { System.out.println(linha); } } catch (MalformedURLException ex) { System.out.println("A URL está mal formada: " + ex.getMessage()); } catch (IOException ex) { System.out.println("Não foi possível efetuar a conexão: " + ex.getMessage()); } finally { if(in != null) { try { in.close(); } catch (IOException ex) { System.out.println("Não consegui fechar o stream de saída: " + ex.getMessage()); } } connection.disconnect(); } } } Ao executar o programa, teremos uma mensagem no console parecida com: A soma dos dois números é: 35 |
JavaScript ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em JavaScript dados dois pontos pertencentes à retaQuantidade de visualizações: 803 vezes |
Nesta dica de JavaScript veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: ![]() Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código JavaScript completo para esta tarefa: <!doctype html> <html> <head> <title>Equação da Reta em JavaScript</title> </head> <body> <script type="text/javascript"> // vamos ler as coordenadas do primeiro ponto var x1 = parseFloat( window.prompt("Coordenada x do primeiro ponto: ")); var y1 = parseFloat( window.prompt("Coordenada y do primeiro ponto: ")); // vamos ler as coordenadas do segundo ponto var x2 = parseFloat( window.prompt("Coordenada x do primeiro ponto: ")); var y2 = parseFloat( window.prompt("Coordenada y do primeiro ponto: ")); var sinal = "+"; // vamos calcular o coeficiente angular da reta var m = (y2 - y1) / (x2 - x1); // vamos calcular o coeficiente linear var n = y1 - (m * x1); // coeficiente linear menor que zero? O sinal será negativo if (n < 0){ sinal = "-"; n = n * -1; } // mostra a equação reduzida da reta document.write("Equação reduzida: y = " + m + "x" + " " + sinal + " " + n); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
Node.js ::: Node.js + MongoDB ::: Passos Iniciais |
Node.js MongoDB - Como instalar o driver do MongoDB no Node.js e efetuar uma conexão Node.js + MongoDBQuantidade de visualizações: 1526 vezes |
Assumindo que você já conhece o banco de dados MongoDB, já fez sua instalação e já está um pouco familiarizado com suas características, nesta dica mostrarei como podemos efetuar uma conexão Node.js + MongoDB. Este é o passo inicial para desenvolver aplicações MEAN (Mongo, Express, Angular, Node) ou MERN (Mongo, Express, React, Node). Note que, nessa dica, usarei apenas o MongoClient para efetuar a conexão com o banco de dados MongoDB. Em outras dicas eu abordo o Mongoose. Então vamos iniciar. A primeira coisa que temos que fazer é instalar o driver MongoDB. Assim, com o Node.js devidamente instalado e funcionando, e com o banco MongoDB em perfeito funcionamento também, abra uma janela de terminal e digite o comando: npm install mongodb Após alguns minutos, a instalação será concluída e teremos o seguinte resultado: + mongodb@3.6.4 added 17 packages from 9 contributors and audited 20 packages in 9.358s 1 package is looking for funding run `npm fund` for details found 0 vulnerabilities Agora já podemos escrever o código que efetua a conexão Node.js com o MongoDB. Abra o seu editor de códigos favorito e digite a listagem abaixo: // vamos obter uma referência ao MongoClient var MongoClient = require('mongodb').MongoClient; // vamos nos conectar à base de dados escola var url = 'mongodb://localhost:27017/escola'; // Vamos nos conectar ao servidor e base de dados. Atenção: Em caso de erro, a // função pode demorar a retornar, pois o Node.js pode pensar que é lentidão // na rede MongoClient.connect(url, {useUnifiedTopology: true}, function(err, db) { if(err){ console.log("Não foi possível efetuar a conexão. Erro: " + err); } else{ console.log("Conexão efetuada com sucesso."); } // finalmente vamos fechar a conexao if(db){ db.close(); } }); Salve este código como conexao.js e execute-o no Node.js (com o MongoDB rodando, é claro) com o seguinte comando: c:\estudos_nodejs>node conexao.js Se tudo correr bem você verá a mensagem: Conexão efetuada com sucesso. Veja que, nesse código, eu efetuei uma conexão com a base de dados escola. Se a porta e o servidor estiverem corretos (talvez você tenha que informar um usuário e senha também), a conexão será efetuada com sucesso mesmo que a base de dados não exista. Quando informamos uma base de dados inexistente, o MongoDB entende que queremos criá-la, mas ele só a cria de fato, quando solicitamos a criação de uma nova coleção. Em mais dicas dessa seção você aprenderá como criar coleções no MongoDB a partir de seus códigos Node.js. Até lá e bons estudos. |
Java ::: Dicas & Truques ::: Data e Hora |
Como converter um objeto Calendar em um objeto Date em JavaQuantidade de visualizações: 11252 vezes |
Muitas vezes precisamos converter um objeto Calendar em um objeto Date em Java. Isso pode ser feito usando-se o método getTime() da classe Calendar. Este método retorna um objeto da classe Date representando o estado atual do objeto Calendar em milisegundos desde o Epoch. Veja um exemplo dessa conversão e o uso da classe SimpleDateFormat para formatar o resultado: package estudos; import java.util.*; import java.text.*; public class Estudos{ public static void main(String args[]){ Calendar cal = Calendar.getInstance(); Date data = cal.getTime(); // formata e exibe a data e hora Format formato = new SimpleDateFormat( "dd/MM/yyyy - HH:mm:ss"); System.out.println(formato.format(data)); } } Ao executar este código Java nós teremos o seguinte resultado: 09/09/2022 - 14:39:53 |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes) |
Como gerar vetores e matrizes com números inteiros aleatórios usando a função random.randint() da biblioteca NumPy para - Machine Learning com PythonQuantidade de visualizações: 1038 vezes |
Veremos nessa dica como podemos usar o método random.randint() da biblioteca NumPy para gerar vetores e matrizes já preenchidos com números inteiros aleatórios. Note que a criação de vetores e matrizes preenchidos com números randômicos é uma parte importante para o desenvolvimento de modelos de teste (test models) em Inteligência Artificial (IA), Machine Learning e outras áreas de estudo que envolvem Data Science. Vamos começar com a forma mais simples do uso da função random.randint() para gerar um vetor de 10 elementos contendo números aleatórios de 0 até 10 (não incluído): # importamos o módulo random da bibliteca NumPy from numpy import random def main(): # vamos gerar um vetor de números inteiros aleatórios # de 0 (incluído) à 10 (não incluído) valores = random.randint(10, size=10) print("O vetor gerado foi: ", valores) if __name__== "__main__": main() Ao executar este código teremos um resultado parecido com: O vetor gerado foi: [0 3 2 3 8 9 3 9 6 4] Aqui nós informamos o limite alto do valor aleatório a ser gerado (mas ele não é incluído). Se quisermos limitar a faixa inferior, podemos tirar proveito dos parâmetros low e high da função randint(). Veja: # importamos o módulo random da bibliteca NumPy from numpy import random def main(): # vamos gerar um vetor de números inteiros aleatórios # de 50 (incluído) à 101 (não incluído) valores = random.randint(50, 101, 10) print("O vetor gerado foi: ", valores) if __name__== "__main__": main() Agora o resultado será parecido com: O vetor gerado foi: [92 89 66 52 61 77 55 58 72 55] Para gerarmos uma matriz, por exemplo, de 2 linhas e 4 colunas, só precisamos gerar o vetor de números aleatórios e em seguida usar o método reshape(), também da biblioteca NumPy para converter a matriz de uma dimensão (vetor) em uma matriz de duas dimensões. Veja: from numpy import random def main(): # vamos gerar um vetor de números inteiros aleatórios # de 1 (incluído) à 21 (não incluído) valores = random.randint(1, 21, 8) # agora vamos converter o vetor para uma matriz # de 2 linhas e 4 colunas valores = valores.reshape(2, 4) print("A matriz gerada foi: ", valores) if __name__== "__main__": main() Quando executamos este código nós temos um resultado parecido com: A matriz gerada foi: [[17 5 2 9] [14 10 10 19]] A partir da versão 1.19 da NumPy, os desenvolvedores da biblioteca recomendam o uso do método integers() do módulo default_rng(). |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como transformar uma string em um array de caracteres em C# usando o método ToCharArray()Quantidade de visualizações: 13837 vezes |
O método ToCharArray() da classe String da linguagem C# permite retornar um array de char contendo todos os caracteres presente na string original. Podemos tirar proveito disso para manipular os caracteres individuais de uma palavra, frase ou texto. Veja um código C# completo no qual demonstramos o seu uso: using System; namespace Estudos { class Program { static void Main(string[] args) { string frase = "Gosto de C#"; Console.WriteLine("String original: " + frase); // obtém um array de caracteres a partir da string char[] letras = frase.ToCharArray(); // exibe os caracteres no array for (int i = 0; i < letras.Length; i++) { Console.WriteLine(letras[i]); } Console.WriteLine("Pressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: String original: Gosto de C# G o s t o d e C # |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C++ - Desafio do número ausente. Dado um vetor de números naturais 1..n, encontre o valor ausenteQuantidade de visualizações: 708 vezes |
Pergunta/Tarefa: Dado o vetor: int valores[] = {1, 8, 7, 2, 6, 5, 3}; Encontre o elemento ausente na sequência de valores do vetor, sabendo que o primeiro valor é 1 e o último elemento é 8. Perceba que o vetor não precisa estar ordenado. Além disso, o entrevistador se certificará de que os valores serão sempre positivos e não haverá valores repetidos. Sua saída deverá ser parecida com: O número ausente é: 4 Dica: Use a fórmula n * (n + 1) / 2 para facilitar a resolução do exercício. Veja a resolução comentada deste exercício usando C++: #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // vamos declarar um vetor de inteiros faltando // um valor na sequência (não necessariamente ordenada) // Note a ausência do número 4 int valores[] = {1, 8, 7, 2, 6, 5, 3}; int i, soma_n, ausente, soma_elementos; int quant = 8; // tamanho do vetor + 1 // o primeiro passo é obter a soma de 1..n elementos // natuais usando a fórmula n*(n+1)/2 soma_n = (quant * (quant + 1)) / 2; // agora vamos somar os elementos do vetor soma_elementos = 0; for(i = 0; i < 7; i++){ soma_elementos = soma_elementos + valores[i]; } // agora calculamos o valor ausente ausente = soma_n - soma_elementos; // vamos mostrar o resultado cout << "O número ausente é: " << ausente << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
Java ::: Classes e Componentes ::: JComboBox |
Tutorial Java Swing - Como remover todos os itens de um JComboBox (Caixa de Combinação) em tempo de execuçãoQuantidade de visualizações: 12493 vezes |
Nesta dica mostrarei como é possível usar o método removeAllItems() da classe JComboBox para remover todos os seus itens. Note que criei a aplicação Java Swing na mão mesmo, sem usar nenhum editor visual de GUI, como o que está disponível no IDE Netbeans. Esta abordagem pode não ser produtiva, mas é excelente para entender como o Java Swing funciona. Veja o código completo para o exemplo: package arquivodecodigos; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JComboBox combo; public Estudos(){ super("A classe JComboBox"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria os itens da lista String nomes[] = {"Carlos", "Marcelo", "Fabiana", "Carolina", "Osmar"}; // Cria o JComboBox combo = new JComboBox(nomes); // Um botão que permite limpar o JComboBox JButton btn = new JButton("Limpar"); btn.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ // remove todos os itens do JComboBox combo.removeAllItems(); } } ); // Adiciona o JComboBox à janela c.add(combo); // Adiciona o botão à janela c.add(btn); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Aqui os itens do JComboBox foram inseridos a partir de um vetor de String. |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como retornar o dia da semana em JavaScript no formato Domingo, Segunda-feira, Terça-feira, etc |
Você também poderá gostar das dicas e truques de programação abaixo |
JavaScript - Como usar a propriedade parentNode para obter o objeto pai de um elemento na hierarquia do DOM do JavaScript Delphi - Como selecionar um item de uma ListBox do Delphi em tempo de execução usando a propriedade ItemIndex |
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 |