JavaScript ::: URLs e Parâmetros de URLs ::: URLSearchParams |
Como obter a quantidade de parâmetros em um objeto URLSearchParams do JavaScriptQuantidade de visualizações: 1050 vezes |
Em algumas situações nós precisamos saber quantos parâmetros de URL foram informados em um objeto URLSearchParams. Para isso nós só precisamos converter o Map representado por URLSearchParams em um array bidimensional usando Array.from(). A partir daí é só chamar a propriedade length do array. Veja o código completo para o exemplo: <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Acessando parâmetros de URL</title> </head> <body> <script type="text/javascript"> // vamos obter a URL atual e seus parâmetros GET var parametros = new URLSearchParams(window.location.search); window.alert("Quantidade de parâmetros: " + Array.from(parametros).length); </script> </body> </html> Ao executar este exemplo JavaScript com a URL: http://localhost/estudos/index.php?nome=Osmar&idade=39 nós teremos uma mensagem window.alert() com o seguinte texto: Quantidade de parâmetros: 2 |
C# ::: Desafios e Lista de Exercícios Resolvidos ::: C# Básico |
Exercícios Resolvidos de C# - Como somar dois números em C# - Escreva um programa C# que leia dois números e mostre a sua somaQuantidade de visualizações: 3647 vezes |
Pergunta/Tarefa: Escreva um programa C# que leia dois números e mostre a sua soma. Os dois números deverão ser informados pelo usuário e você deverá efetuar a leitura como dois inteiros e mostrar a soma também como um inteiro. Os valores informados pelo usuário podem ser positivos ou negativos. Sua saída deverá ser parecida com: Informe o primeiro valor: 8 Informe o segundo valor: 3 A soma dos dois valores é: 11 Veja a resolução comentada deste exercício usando C#: using System; namespace Estudos { class Program { static void Main(string[] args) { // vamos ler o primeiro número Console.Write("Informe o primeiro valor: "); int n1 = int.Parse(Console.ReadLine()); // vamos ler o segundo número Console.Write("Informe o segundo valor: "); int n2 = int.Parse(Console.ReadLine()); // agora vamos efetuar a soma dos valores informados int soma = n1 + n2; // e mostramos o resultado Console.WriteLine("A soma dos dois valores é {0}", soma); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em JavaQuantidade de visualizações: 16194 vezes |
Pergunta/Tarefa: Escreva um programa Java que declara, constrói e inicializa um vetor de 10 inteiros. Em seguida peça para que o usuário informe um valor a ser pesquisado. Faça uma varredura no vetor e informe quantas vezes o valor pesquisado é encontrado: // declara, constrói e inicializa um vetor de 10 inteiros int valores[] = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10}; Informe um valor: 4 O valor foi encontrado: 3 vezes Informe um valor: 8 O valor foi encontrado: 1 vezes Informe um valor: 3 O valor foi encontrado: 0 vezes Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ // declara, constrói e inicializa um vetor de 10 inteiros int valores[] = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10}; // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos ler um valor inteiro System.out.print("Informe um valor: "); int pesquisa = Integer.parseInt(entrada.nextLine()); // vamos verificar quantas vezes o valor informado está // contido no vetor int repeticoes = 0; for(int i = 0; i < valores.length; i++){ if(valores[i] == pesquisa){ repeticoes++; // encontrou? vamos contar esta ocorrência } } // vamos mostrar o resultado System.out.println("O valor foi encontrado: " + repeticoes + " vezes"); } } |
JavaScript ::: Dicas & Truques ::: Strings e Caracteres |
Como adicionar zeros (ou outro caractere) no início de uma string usando o método padStart() da linguagem JavaScriptQuantidade de visualizações: 3013 vezes |
Como adicionar zeros (ou outro caractere) no início de uma string usando o método padStart() da linguagem JavaScript O método padStart(), adicionado ao objeto String no ES2017 (ECMAScript 8) é usado quando queremos preencher o início de uma string com zeros ou qualquer outro caractere até alcançarmos um comprimento determinado. Veja, por exemplo, como adicionar zeros na frente de uma string para alcançar o tamanho de cinco caracteres: <script type="text/javascript"> var valor = 17; // vamos mostrar o valor com o tamanho de cinco caracteres document.write("O valor é: " + valor.toString().padStart(5, "0")); </script> Ao executar o exemplo você verá o valor "00017" ser exibido. Porém, como o método padStart() foi adicionado no ES2017, pode ser que você encontre navegadores que ainda não o suportem. Assim, é sempre uma idéia testar a sua existência. Veja: <script type="text/javascript"> if(String.prototype.padStart){ window.alert("Seu browser já suporta a função padStart()."); } else{ window.alert("Seu browser NÃO suporta a função padStart()."); } </script> Se o navegador não oferecer suporte a este método, você poderá usar um Polyfill, de terceiros ou uma solução que você mesmo poderá desenvolver. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Pesquisando um valor em uma matriz de int e retornando o índice no qual o mesmo foi encontradoQuantidade de visualizações: 9471 vezes |
Pergunta/Tarefa: Escreva um programa Java GUI ou console que declara, constrói e inicializa uma matriz de 5 inteiros. Em seguida peça ao usuário para informar um valor inteiro e informe se o valor lido está contido na matriz. Se o valor for encontrado na matriz, retorne seu índice (lembre-se de que os índices dos elementos em uma matriz Java começam em 0). A declaração, construção e inicialização da matriz pode ser feita da seguinte forma: // declara, constrói e inicializa uma matriz de 5 inteiros int valores[] = {4, 21, 8, 120, 1}; Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: package estudos; import javax.swing.JOptionPane; public class Estudos { public static void main(String[] args) { // declara, constrói e inicializa uma matriz de 5 inteiros int valores[] = {4, 21, 8, 120, 1}; // vamos ler um valor inteiro int pesquisa = Integer.parseInt(JOptionPane.showInputDialog("Valor:")); // vamos verificar se o valor está contido na matriz e retornar seu índice int pos = -1; // índice não existente na matriz for(int i = 0; i < valores.length; i++){ if(valores[i] == pesquisa){ pos = i; // encontrou? vamos anotar este índice break; } } // vamos mostrar o resultado if(pos > -1){ JOptionPane.showMessageDialog(null, "O valor foi encontrado no índice: " + pos); } else{ JOptionPane.showMessageDialog(null, "O valor não foi encontrado na matriz"); } } } Uma idéia na resolução deste exercício é inicializar a variável que guardará o índice do elemento pesquisado com o valor -1. Assim, se no final da pesquisa o valor ainda for -1, sabemos que o elemento não foi encontrado. |
Java ::: Classes e Componentes ::: JComponent |
Java Avançado - Como verificar se uma classe herda de JComponentQuantidade de visualizações: 8688 vezes |
Nesta dica mostrarei como podemos tirar proveito dos métodos getClass(), getSuperclass() e getName() da classe Class para verificarmos se uma determinada classe herda da classe JComponent. Embora este exemplo busque relacionar controles do Java Swing, a técnica usada pode ser aplicada em qualquer classe da linguagem Java. Veja o código completo: package arquivodecodigos; import javax.swing.*; public class Estudos{ public static void main(String args[]){ // verifica se JLabel herda de JComponent JLabel label = new JLabel("Teste"); if(herdaJComponent(label)){ System.out.println("JLabel herda de JComponent"); } else{ System.out.println( "JLabel não herda de JComponent"); } // verifica se Timer herda de JComponent java.util.Timer timer = new java.util.Timer(); if(herdaJComponent(timer)){ System.out.println( "java.util.Timer herda de JComponent"); } else{ System.out.println( "java.util.Timer não herda de JComponent"); } System.exit(0); } static boolean herdaJComponent(Object obj){ Class cls = obj.getClass(); Class superclass = cls.getSuperclass(); while(superclass != null){ String className = superclass.getName(); if(className.equals("javax.swing.JComponent")){ return true; } cls = superclass; superclass = cls.getSuperclass(); } return false; } } Ao executarmos este código nós teremos o seguinte resultado: JLabel herda de JComponent java.util.Timer não herda de JComponent |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação orientada a objetos em Java - Como criar e usar interfaces em seus programas JavaQuantidade de visualizações: 11860 vezes |
Muitos estudantes de Java torcem o nariz quando nós, professores e instrutores, tocamos no assunto de interfaces. Definitivamente este não é um tópico fácil de entender ao primeiro contato. Comecemos com uma analogia simples. É sabido que é cada vez maior o número de softwares sendo desenvolvidos em equipes, ou seja, o projeto do software é desmembrado e suas funcionalidades são implementadas por grupos diferentes de programadores. Quando estamos desenvolvendo software em grupos de programadores, é comum desenvolvermos partes que dependem do trabalho de um outro grupo. E, nem sempre podemos esperar que uma parte da qual dependemos fique pronta para só então progredirmos. Para isso, um contrato entre os grupos de programadores é firmado. E este contrato é o que chamamos de interface. Suponhamos que em um determinado momento meu grupo está desenvolvendo código que depende da parte de impressão, sendo desenvolvida por outro grupo. Todos se reúnem e decidimos quais funcionalidades a classe de impressão terá e quais métodos públicos serão disponibilizados. Feito isso, uma interface contendo a assinatura destes métodos é disponibilizada para todos e o desenvolvimento continua. Mais tarde, quando a classe de impressão estiver sendo desenvolvida, ela poderá implementar a interface anteriormente disponibilizada e tudo está resolvido. Sendo assim, uma interface na linguagem de programação Java é um tipo referência, similar a uma classe. A diferença é que uma interface pode conter apenas constantes e assinaturas e métodos. Não há a implementação dos corpos dos métodos. Além disso, interfaces não podem ser instanciadas usando new. Veja o que acontece quando tentamos fazer isso (lembre-se de que List é interface): import java.util.*; public class Estudos{ public static void main(String args[]){ // cria um objeto da interface List List lista = new List(); } } Ao tentarmos compilar este código teremos a seguinte mensagem de erro: Estudos.java:6: java.util.List is abstract; cannot be instantiated List lista = new List(); ^ 1 error Interfaces devem ser implementadas por classes ou extendidas por outras interfaces. Agora, um detalhe interessante. Se você verificar a API do Java, verá que a interface List é implementada pelas classes AbstractList, ArrayList, LinkedList e Vector. Desta forma, o código anterior pode ser modificado para: import java.util.*; public class Estudos{ public static void main(String args[]){ // cria um objeto da interface List List lista = new ArrayList(); } } Este código compila normalmente e fortalece nossa discussão a respeito da interface de impressão. O sistema inteiro pode fazer referências a uma interface e, para que ele funcione da forma esperada, só precisamos fornecer a classe que implementa a interface no momento de instanciar os objetos. Isso demonstra que o nome de uma interface pode ser usado em qualquer lugar no qual um tipo da classe que a implementa seja necessário. Vamos ver agora como criar uma interface chamada Pessoa. Veja: public interface Pessoa{ public void setNome(String nome); public String getNome(); } Salve esta interface como Pessoa.java e a compile. Pronto! Esta interface já pode ser usada no sistema, contanto que todos do grupo tenham concordado com as assinaturas dos métodos. Agora observe uma classe Cliente que implementa esta interface: public class Cliente implements Pessoa{ private String nome; private int idade; public void setNome(String nome){ this.nome = nome; } public String getNome(){ return this.nome; } } Salve este código como Cliente.java e o compile. O primeiro detalhe a observar é o uso da palavra-chave implements para mostrar que a classe implementa a interface Pessoa. Note também que a classe fornece implementação para todos os métodos da interface. Não seguir esta regra geraria o seguinte erro de compilação: Cliente.java:1: Cliente is not abstract and does not override abstract method getNome() in Pessoa public class Cliente implements Pessoa{ ^ 1 error Em resumo, uma interface define um protocolo de comunicação entre dois objetos e pode conter, além das assinaturas dos métodos, constantes. Neste caso todas estas constantes serão implicitamente public, static e final. Mesmo que estes modificadores sejam omitidos. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Escreva um programa Java que usa uma função recursiva para retornar a quantidade de dígitos presentes em um número inteiro informado pelo usuárioQuantidade de visualizações: 1100 vezes |
Pergunta/Tarefa: Escreva um programa Java usa uma função recursiva para retornar a quantidade de dígitos presentes em um número inteiro informado pelo usuário. Você pode usar qualquer técnica de recursividade disponível, desde que o retorno da função seja um valor inteiro. Você deverá implementar a seguinte função recursiva: public static int quantDigitos(int numero){ // seu código aqui } Informe um número inteiro de qualquer tamanho: 4983 O número informado possui 4 dígitos Veja a resolução comentada deste exercício usando Java console: package exercicio; import java.util.Scanner; public class Exercicio{ public static void main(String[] args) { // cria um novo objeto da classe Scanner Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar um número inteiro System.out.print("Informe um número inteiro de qualquer tamanho: "); int num = Integer.parseInt(entrada.nextLine()); // vamos obter a quantidade de dígitos no número usando // uma chamada à função recursiva quant_digitos() int quant = quantDigitos(num); // mostramos o resultado System.out.println("O número informado possui " + quant + " dígitos"); } // função recursiva que recebe um número inteiro e retorna // sua quantidade de dígitos public static int quantDigitos(int numero){ if ((numero / 10) == 0){ // atenção: divisão inteira // retorna o caso base return 1; } else{ // efetua mais uma chamada recursiva return 1 + quantDigitos(numero / 10); } } } |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como remover todos os espaços de uma string usando o método replace() da classe String da linguagem JavaQuantidade de visualizações: 1 vezes |
Nesta dica mostrarei como usar o método replace() da classe String do Java para remover todos os espaços de uma frase ou texto, tanto no início, fim e no meio. Note que esta dica remove TODOS os espaços, não somente os espaço excessivos. Para isso veja outras dicas dessa seção. Veja o código Java completo para o exemplo: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ String frase = "Programar em Java é muito bom"; System.out.println("Com espaços: " + frase); frase = frase.replace(" ", ""); System.out.println("Sem espaços: " + frase); System.exit(0); } } Ao executar este código nós teremos o seguinte resultado: Com espaços: Programar em Java é muito bom Sem espaços: ProgramaremJavaémuitobom |
Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet |
Como usar o método FindField para pesquisar um campo no TClientDataSet do Delphi e retornar um objeto da classe TFieldQuantidade de visualizações: 14126 vezes |
O método FindField pode ser usado quando queremos pesquisar um campo no TClientDataSet e retornar um objeto da classe TField. Este método possui a seguinte assinatura:function FindField(const FieldName: string): TField; Veja um trecho de código no qual eu mostro como encontrar um campo chamado "autor" em um ClientDataSet e retornar seu valor no registro atual: procedure TForm3.Button3Click(Sender: TObject); var campo: TField; begin // vamos obter o campo com o nome "autor" no ClientDataSet campo := ClientDataSet1.FindField('autor'); // este campo existe no dataset? if campo <> nil then ShowMessage('O campo existe e seu valor no registro atual é: ' + campo.AsString) else // o campo não existe no dataset ShowMessage('O campo não existe no dataset'); end; Se o campo existir no dataset, veremos uma mensagem parecida com: "O campo existe e seu valor no registro atual é: M. D. Deitel". Em geral usamos o método FindField para determinar se um determinado componente field existe no dataset. O argumento para o método é o nome do campo que queremos pesquisar. Este nome pode ser o nome de um campo simples, o nome de um sub-campo de um objeto field que tenha sido qualificado pelo nome do campo pai ou o nome de um campo agregado. O comportamento do método FindField é o mesmo do método FieldByName. A diferença é que FindField retorna o valor nil se o campo não existir, enquanto FieldByName lança uma exceção do tipo EDatabaseError com a mensagem "Field not found". Esta dica foi escrita e testada no Delphi 2009. |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
JavaScript - Cookies em JavaScript - Como registrar a quantidade de vezes que o usuário visitou a sua página HTML |
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 |