Você está aqui: Java ::: Dicas & Truques ::: Formatação de datas, strings e números |
Java para iniciantes - Como formatar uma string no estilo printf da linguagem C usando a classe Formater do JavaQuantidade de visualizações: 11933 vezes |
Nesta dica eu mostro como é possível usar o método format() da classe Formater da linguagem Java para formatar strings ao bom e velho estilo da linguagem C, ou seja, com marcadores %d para inteiros, %f para decimais, por exemplo. Veja o exemplo 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 ---------------------------------------------------------------------- package arquivodecodigos; import java.util.*; public class Estudos{ public static void main(String[] args){ int pessoas = 20; StringBuilder string = new StringBuilder(); Formatter fm = new Formatter(string); fm.format("Havia %d pessoas lá.", pessoas); System.out.println(string); } } Ao executar este código Java nós teremos o seguinte resultado: Havia 20 pessoas lá. |
![]() |
Java ::: Dicas & Truques ::: Formulários e Janelas |
Java Swing para iniciantes - Como adicionar componentes à janela do aplicativo Java SwingQuantidade de visualizações: 15996 vezes |
Embora já exista ferramentas de programação que facilitem bastante a construção de interfaces gráficas, principalmente o editor GUI visual do NetBeans, é importante saber como componentes visuais são adicionados à janela da aplicação Java Swing. Veja, por exemplo, a imagem a seguir: ![]() E aqui está o código Java Swing completo a sua criaçã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 ---------------------------------------------------------------------- package arquivodecodigos; import java.awt.*; import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { super("Minha primeira aplicação GUI"); // obtém o painel de conteúdo e adiciona // um botão à janela JButton btn = new JButton("Clique Aqui"); getContentPane().add(btn, BorderLayout.NORTH); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como classificar um array em ordem crescente usando o método sort() da classe Arrays do JavaQuantidade de visualizações: 26784 vezes |
Nesta dica mostrarei como podemos usar o método sort() da classe Arrays da linguagens Java para ordenar um vetor de inteiros em ordem crescente. A assinatura do método sort() que usaremos é aquela que recebe apenas um argumento, ou seja, o array a ser ordenado. Note que a implementação de ordenação usada pelo método sort() é a ordenação quicksort, considerada uma das mais rápidas nos dias atuais. 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 ---------------------------------------------------------------------- package estudos; import java.util.*; public class Estudos{ public static void main(String[] args){ // vamos declarar e construir um vetor de 5 inteiros int[] valores = new int[5]; // inicializa os elementos do array valores[0] = 23; valores[1] = 65; valores[2] = 2; valores[3] = 87; valores[4] = 34; // exibe os valores dos elementos do array // usando o laço for melhorado System.out.println("Elementos na ordem original:"); for(int valor : valores){ System.out.print(valor + " "); } // ordena os valores em ordem crescente Arrays.sort(valores); // exibe os valores dos elementos do array // usando o laço for melhorado System.out.println("\n\nElementos classificados em ordem crescente:"); for(int valor : valores){ System.out.print(valor + " "); } System.out.println("\n\n"); System.exit(0); } } Ao executarmos este código Java nós teremos o seguinte resultado: Elementos na ordem original: 23 65 2 87 34 Elementos classificados em ordem crescente: 2 23 34 65 87 |
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: 17494 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: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- 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: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- 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: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- 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: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- 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: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- 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: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- 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. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Como calcular a tabuada de multiplicação para os números de 1 a 9 em JavaQuantidade de visualizações: 4049 vezes |
Pergunta/Tarefa: Escreva um programa Java que usa o laço for para calcular e exibir a tabuada de multiplicação dos números 1 a 9. Sua saída deve ser parecida com: Tabuada de Multiplicação ---------------------------------------------- 1 2 3 4 5 6 7 8 9 ---------------------------------------------- 1 | 1 2 3 4 5 6 7 8 9 2 | 2 4 6 8 10 12 14 16 18 3 | 3 6 9 12 15 18 21 24 27 4 | 4 8 12 16 20 24 28 32 36 5 | 5 10 15 20 25 30 35 40 45 6 | 6 12 18 24 30 36 42 48 54 7 | 7 14 21 28 35 42 49 56 63 8 | 8 16 24 32 40 48 56 64 72 9 | 9 18 27 36 45 54 63 72 81 Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- package estudos; public class Estudos { public static void main(String[] args) { // mostra o título da tabela System.out.print(" Tabuada de Multiplicação"); System.out.println("\n----------------------------------------------"); // exibe os números na parte superior System.out.print(" "); for(int i = 1; i <= 9; i++){ System.out.print(" " + i); } System.out.println("\n----------------------------------------------"); // mostra o corpo da tabuada for(int i = 1; i <= 9; i++){ System.out.print(i + " |"); for(int j = 1; j <= 9; j++){ System.out.printf("%4d", i * j); } System.out.println(); } System.out.println("\n"); } } |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como inserir uma substring em uma string em Java usando o método insert() da classe StringBufferQuantidade de visualizações: 119 vezes |
Nesta dica mostrarei como podemos usar o método insert() da classe StringBuffer da linguagem Java para inserir uma substring no início, meio ou final de uma string. Este método recebe o índice no qual queremos inserir a substring e a substring a ser inserida. Veja o código Java 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 ---------------------------------------------------------------------- package estudos; public class Estudos { public static void main(String args[]) { // vamos declarar um objeto da classe StringBuffer StringBuffer frase = new StringBuffer("Programar em é bom demais"); System.out.println("A frase original é: " + frase); // agora vamos inserir a palavra "Java" no índice 13 frase.insert(13, "Java "); // e agora mostramos o resultado System.out.println("O resultado é: " + frase); } } Ao executar este código Java nós teremos o seguinte resultado: A frase original é: Programar em é bom demais O resultado é: Programar em Java é bom demais |
Java ::: Classes e Componentes ::: JComponent |
Java Avançado - Como verificar se uma classe herda de JComponentQuantidade de visualizações: 8601 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: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- 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 ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como fazer a travessia de uma árvore binária de busca em Java usando o percurso em-ordem (in-order, In-ordem ou ordem simétrica)Quantidade de visualizações: 4826 vezes |
Antes de discutirmos o percurso in-order, veja a árvore binária de busca na figura abaixo:![]() Esta árvore possui 9 nós e obedece à regra de que os nós com valores menores que o nó pai ficam à sua esquerda, e aqueles com nós maiores que o nó pai, ficam à sua direita. O percurso em ordem é usado quando queremos exibir os valores dos nós da árvore binária de busca em ordem ascendente. Neste tipo de percurso nós visitamos primeiramente a sub-árvore da esquerda, então o nó atual e finalmente a sub-árvore à direita do nó atual. É importante notar que esta travessia é feita por meio de um método recursivo. Veja o código completo para o exemplo: Código para No.java: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- package arvore_binaria; public class No { private int valor; // valor armazenado no nó private No esquerdo; // filho esquerdo private No direito; // filho direito // construtor do nó public No(int valor){ this.valor = valor; this.esquerdo = null; this.direito = null; } public int getValor() { return valor; } public void setValor(int valor) { this.valor = valor; } public No getEsquerdo() { return esquerdo; } public void setEsquerdo(No esquerdo) { this.esquerdo = esquerdo; } public No getDireito() { return direito; } public void setDireito(No direito) { this.direito = direito; } } Código para ArvoreBinariaBusca.java: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- package arvore_binaria; public class ArvoreBinariaBusca { private No raiz; // referência para a raiz da árvore // método usado para inserir um novo nó na árvore // retorna true se o nó for inserido com sucesso e false // se o elemento // não puder ser inserido (no caso de já existir um // elemento igual) public boolean inserir(int valor){ // a árvore ainda está vazia? if(raiz == null){ // vamos criar o primeiro nó e definí-lo como a raiz da árvore raiz = new No(valor); // cria um novo nó } else{ // localiza o nó pai do novo nó No pai = null; No noAtual = raiz; // começa a busca pela raiz // enquanto o nó atual for diferente de null while(noAtual != null){ // o valor sendo inserido é menor que o nó atual? if(valor < noAtual.getValor()) { pai = noAtual; // vamos inserir do lado esquerdo noAtual = noAtual.getEsquerdo(); } // o valor sendo inserido é maior que o nó atual else if(valor > noAtual.getValor()){ pai = noAtual; // vamos inserir do lado direito noAtual = noAtual.getDireito(); } else{ return false; // um nó com este valor foi encontrado } } // cria o novo nó e o adiciona como filho do nó pai if(valor < pai.getValor()){ pai.setEsquerdo(new No(valor)); } else{ pai.setDireito(new No(valor)); } } return true; // retorna true para indicar que o novo nó foi inserido } // método que permite disparar a travessia em-ordem public void emOrdem(){ emOrdem(raiz); } // sobrecarga do método emOrdem com uma parâmetro (esta é a versão // recursiva do método) private void emOrdem(No raiz){ if(raiz == null){ // condição de parada return; } // visita a sub-árvore da esquerda emOrdem(raiz.getEsquerdo()); // visita o nó atual System.out.print(raiz.getValor() + " "); // visita a sub-árvore da direita emOrdem(raiz.getDireito()); } } E agora o código para a classe principal: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- package arvore_binaria; import java.util.Scanner; public class ArvoreBinariaTeste { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos criar um novo objeto da classe ArvoreBinariaBusca ArvoreBinariaBusca arvore = new ArvoreBinariaBusca(); // vamos inserir 9 valores na árvore for(int i = 0; i < 9; i++){ System.out.print("Informe um valor inteiro: "); int valor = Integer.parseInt(entrada.nextLine()); // vamos inserir o nó e verificar o sucesso da operação if(!arvore.inserir(valor)){ System.out.println("Não foi possível inserir." + " Um elemento já contém este valor."); } } // vamos exibir os nós da árvore usando o percurso in-order System.out.println("\nPercurso in-order:"); arvore.emOrdem(); System.out.println("\n"); } } Ao executar este código teremos o seguinte resultado: Informe um valor inteiro: 8 Informe um valor inteiro: 3 Informe um valor inteiro: 10 Informe um valor inteiro: 1 Informe um valor inteiro: 6 Informe um valor inteiro: 14 Informe um valor inteiro: 4 Informe um valor inteiro: 7 Informe um valor inteiro: 13 Percurso in-order: 1 3 4 6 7 8 10 13 14 |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular juros simples e composto - Calculando juros simples e montante na linguagem JavaQuantidade de visualizações: 14281 vezes |
O regime de juros será simples quando o percentual de juros incidir apenas sobre o valor principal. Sobre os juros gerados a cada período não incidirão novos juros. Valor Principal, ou simplesmente principal, é o valor inicial emprestado ou aplicado, antes de somarmos os juros. Transformando em fórmula temos: J = P . i . n Onde: J = juros P = principal (capital) i = taxa de juros n = número de períodos Imaginemos uma dívida de R$ 2.000,00 que deverá ser paga com juros de 5% a.m. pelo regime de juros simples e o prazo para o pagamento é de 2 meses. O cálculo em Java pode ser feito assim: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ double principal = 2000.00; double taxa = 0.08; int meses = 2; double juros = principal * taxa * meses; System.out.println("O total de juros a ser pago é: " + juros); System.exit(0); } } O montante da dívida pode ser obtido das seguintes formas: a) Montante = Principal + Juros b) Montante = Principal + (Principal x Taxa de juros x Número de períodos) M = P . (1 + (i . n)) Veja o código: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ double principal = 2000.00; double taxa = 0.08; int meses = 2; double juros = principal * taxa * meses; double montante = principal * (1 + (taxa * meses)); System.out.println("O total de juros a ser pago é: " + juros); System.out.println("O montante a ser pago é: " + montante); System.exit(0); } } |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |