Você está aqui: Java ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é par ou ímpar em JavaQuantidade de visualizações: 816 vezes |
Muitas vezes precisamos saber se um determinado número é par ou ímpar. Isso pode ser feito em Java usando-se o operador de módulo "%", que retorna o resto de uma divisão por inteiros. 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 ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args){ // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos ler um número inteiro System.out.print("Informe um valor inteiro: "); int num = Integer.parseInt(entrada.nextLine()); // vamos testar se o número é par if(num % 2 == 0){ System.out.println("Você informou um número par"); } // é ímpar else{ System.out.println("Você informou um número ímpar"); } } } Ao executar este programa Java nós teremos o seguinte resultado: Informe um valor inteiro: 8 Você informou um numero par |
![]() |
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Como usar o tipo de dados char da linguagem JavaQuantidade de visualizações: 25317 vezes |
O tipo de dados char é usado para representar um único caractere. 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 ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ char letra1 = 'A'; char letra2 = 'B'; System.out.println("As letras são: " + letra1 + " e " + letra2); System.exit(0); } } Observe que um literal string deve estar entre aspas duplas, enquanto que um literal do tipo caractere deve estar entre aspas simples. Desta forma, "H" é uma string e 'H' é um caractere. O tipo char é integral mas sem sinal. A faixa de uma variável deste tipo vai de 0 à 65536. Os caracteres em Java são codificados em Unicode, que é um codificação de 16 bits capaz de representar uma larga faixa de caracteres internacionais. Se os 9 bits mais significantes de um char forem todos 0, então a codificação será a mesma que o ASCII de 7 bits. É possível atribuir literais inteiros à uma variável do tipo char. 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 ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ char letra = 98; System.out.println("A letra é: " + letra); System.exit(0); } } Este código exibirá o caractere 'b'. Veja um exemplo no qual imprimimos todas as letras do alfabeto minúsculo: ---------------------------------------------------------------------- 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[]){ for(char i = 97; i <= 122; i++){ System.out.print(i + " "); } System.exit(0); } } O tipo char pode ser convertido (sem a necessidade de cast) para os seguintes tipos: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- char -> int -> long -> float -> double Não é possível converter um char em um short ou byte. Caso isso seja realmente necessário, temos que fazer uma coerção (cast). 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 ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ char letra = 57; byte valor = (byte)(letra); System.exit(0); } } É fácil entender porque um char não pode ser convertido implicitamente em um byte. Um char possui 16 bits enquanto um byte possui apenas 8 bits. Mas, um short possui 16 bits. Assim, o que impede a conversão implicita de um char para um short? É simples. Como o tipo short possui sinal (aceita valores negativos) e o tipo char é sem sinal, o resultado é que o tipo short possui um bit a menos (reservado para o sinal) e portanto, não pode acomodar os 16 bits do tipo char. |
Java ::: Dicas & Truques ::: Expressões Regulares |
Java Expressões Regulares - Como substituir todas as ocorrências de uma substring em uma string usando expressões regularesQuantidade de visualizações: 9255 vezes |
Este exemplo mostra como substituir todas as ocorrências de uma substring em uma string usando expressões regulares na linguagem Java. Nesta dica nós substituimos todas as ocorrências de "Java" por "C++". 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 java.util.regex.*; public class Estudos{ public static void main(String args[]){ String padrao = "Java"; Pattern regPat = Pattern.compile(padrao); String frase = "Java? Gosto muito de Java."; System.out.println("Frase original: " + frase); Matcher matcher = regPat.matcher(frase); String res = matcher.replaceAll("C++"); System.out.println("Depois da substituição: " + res); } } Ao executarmos este código Java nós teremos o seguinte resultado: Frase original: Java? Gosto muito de Java. Depois da substituição: C++? Gosto muito de C++. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercício Resolvido de Java - Usando um laço for para contar de 0 até 10 e somar todos os valoresQuantidade de visualizações: 14731 vezes |
Pergunta/Tarefa: Escreva um programa Java que usa o laço for para contar de 0 até 10 e somar todos estes valores, ou seja, 0 + 1 + 2 + 3 + etc. Como resultado seu programa deverá exibir o valor 55. Resposta/Solução: A primeira providência para a realização deste exercício é declarar uma variável soma do tipo int e atribuir a ela o valor inicial 0: // variável int que gardará a soma dos valores int soma = 0; Em seguida faremos um laço for repetir de 0 até 10 e, a cada repetição, nós obtemos o valor da variável de controle e a somamos ao valor atual da variável soma. 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 ---------------------------------------------------------------------- public static void main(String[] args){ // laço for que conta de 0 até 10 e soma todos os valores // variável int que gardará a soma dos valores int soma = 0; for(int i = 0; i <= 10; i++){ // vamos somar mais este valor soma = soma + i; // poderia também ser // soma += i; } // vamos exibir a soma dos valores System.out.println("A soma dos valores de 0 a 10 é: " + soma); } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Um método recursivo que recebe uma String e retorna a quantidade de letras maiúsculas encontradasQuantidade de visualizações: 5850 vezes |
Pergunta/Tarefa: Escreva um método recursivo que recebe uma palavra ou frase e retorna a quantidade de caracteres (letras) maiúsculos. Seu método deverá possuir a seguinte assinatura: public static int contarMaiusculas(String frase){ // sua implementação aqui } Sua saída deverá ser parecida com: Digite uma palavra ou frase: Arquivo de Códigos A palavra ou frase contém 2 letras maiúsculas Veja a resolução comentada deste exercício usando Java console: Observação importante: Este código criará uma cadeia de chamadas recursivas. Cada chamada ao método contarMaiusculas() receberá uma cópia menor da palavra ou frase fornecida. Quando a última chamada recursiva do método receber uma string vazia, a cadeia começa a retornar. Note que os valores acumulados nas várias chamadas ao método vão sendo acumulados na variável quantidade. ---------------------------------------------------------------------- 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 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); // solicita uma palavra ou frase ao usuário System.out.print("Digite uma palavra ou frase: "); // lê a palavra ou frase String frase = entrada.nextLine(); int quantMaiusculas = contarMaiusculas(frase); System.out.println("A palavra ou frase contém " + quantMaiusculas + " letras maiúsculas"); } // método recursivo que recebe uma palavra ou frase e retorna // a quantidade de letras maiúsculas public static int contarMaiusculas(String frase){ /* Este código criará uma cadeia de chamadas recursivas. Cada * chamada ao método contarMaiusculas() receberá uma cópia menor * da palavra ou frase fornecida. Quando a última chamada recursiva do * método receber uma string vazia, a cadeia começa a retornar. Note * que os valores acumulados nas várias chamadas ao método vão sendo * acumulados na variável quantidade */ int quantidade = 0; // o tamanho da string é maior que 0? if(frase.length() > 0){ if(Character.isUpperCase(frase.charAt(0))){ quantidade = 1 + contarMaiusculas(frase.substring(1)); } else{ quantidade = contarMaiusculas(frase.substring(1)); } } return quantidade; } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Ordenação e Pesquisa (Busca) |
Exercícios Resolvidos de Java - Como usar a Ordenação da Bolha em Java para ordenar os valores de um vetor em ordem crescente ou decrescenteQuantidade de visualizações: 3518 vezes |
Pergunta/Tarefa: A Ordenação da Bolha, ou ordenação por flutuação (literalmente "por bolha"), também chamada de Bubble Sort, é um algoritmo de ordenação dos mais simples. A ideia é percorrer o array diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo. No melhor caso, o algoritmo executa n operações relevantes, onde n representa o número de elementos do vetor. No pior caso, são feitas n2 operações. A complexidade desse algoritmo é de ordem quadrática. Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados. Escreva um programa Java que declara, constrói um vetor de 10 inteiros e peça para o usuário informar os valores de seus elementos. Em seguida use a ordenação da bolha para ordenar os elementos em ordem crescente. Sua saída deverá ser parecida com: Informe o valor para o índice 0: 84 Informe o valor para o índice 1: 23 Informe o valor para o índice 2: 9 Informe o valor para o índice 3: 5 Informe o valor para o índice 4: 11 Informe o valor para o índice 5: 3 Informe o valor para o índice 6: 50 Informe o valor para o índice 7: 7 Informe o valor para o índice 8: 2 Informe o valor para o índice 9: 73 O array informado foi: 84 23 9 5 11 3 50 7 2 73 O array ordenado é: 2 3 5 7 9 11 23 50 73 84 Veja a resolução comentada deste exercício usando 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 estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos declarar e construir um vetor de 10 elementos int valores[] = new int[10]; // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir que o usuário informe os valores for(int i = 0; i < valores.length; i++){ System.out.print("Informe o valor para o índice " + i + ": "); valores[i] = Integer.parseInt(entrada.nextLine()); } // vamos mostrar o vetor informado System.out.println("\nO array informado foi:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } // vamos ordenar os elementos do vetor usando a ordenação da bolha // laço externo de trás para frente for(int i = valores.length - 1; i > 1; i--){ for(int j = 0; j < i; j++){ // laço interno vai no fluxo normal if(valores[j] > valores[j + 1]){ // temos que trocá-los de lugar int temp = valores[j]; valores[j] = valores[j + 1]; valores[j + 1] = temp; } } } // vamos exibir o vetor já ordenado System.out.println("\n\nO array ordenado é:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } System.out.println("\n"); } } |
Java ::: Dicas & Truques ::: Formulários e Janelas |
Java Swing para iniciantes - Como definir ou obter o título de uma janela JFrameQuantidade de visualizações: 11074 vezes |
Nesta dica mostrarei como usar o método setTitle() da classe JFrame para definir o título da janela JFrame. Usaremos também o método getTitle() para obter o título da janela. Veja o código Java Swing 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 ---------------------------------------------------------------------- import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { setSize(350, 250); setVisible(true); // Define o título da janela setTitle("Controle de Estoque"); // obtém o título da janela JOptionPane.showMessageDialog(null, "O título da janela é: " + this.getTitle()); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar este exemplo você verá uma janela JOptionPane com o texto "O título da janela é: Controle de Estoque". |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Criando dois vetores de inteiros de forma que a soma dos elementos individuais de cada vetor seja igual a 30Quantidade de visualizações: 11517 vezes |
Pergunta/Tarefa: Considere os seguintes vetores: // dois vetores de 5 inteiros cada int a[] = {50, -2, 9, 5, 17}; int b[] = new int[5]; Sua saída deverá ser parecida com: Valores no vetor a: 50 -2 9 5 17 Valores no vetor b: -20 32 21 25 13 Veja a resolução comentada deste exercício usando 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 estudos; public class Estudos { public static void main(String[] args) { // dois vetores de 5 inteiros cada int a[] = {50, -2, 9, 5, 17}; int b[] = new int[5]; // vamos preencher o segundo vetor de forma que a soma dos // valores de seus elementos seja 30 for(int i = 0; i < b.length; i++){ b[i] = 30 - a[i]; } // vamos mostrar o resultado System.out.print("Valores no vetor a: "); for(int i = 0; i < a.length; i++){ System.out.print(a[i] + " "); } System.out.print("\nValores no vetor b: "); for(int i = 0; i < b.length; i++){ System.out.print(b[i] + " "); } System.out.println(); } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Como somar o primeiro e o último dígito de um número inteiro informado pelo usuário em JavaQuantidade de visualizações: 832 vezes |
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar um número inteiro e mostre a soma do primeiro dígito com o último dígito. Atenção: você deve usar apenas os operadores matemáticos e a função log10(). Sua saída deverá ser parecida com: Informe um número inteiro: 48763 A soma do primeiro e do último dígito é: 7 Veja a resolução comentada deste exercício usando 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 estudos; import java.util.Scanner; public class Estudos{ public static void main(String args[]){ // vamos usar a classe Scanner para a leitura dos dados 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: "); int numero = Integer.parseInt(entrada.nextLine()); // vamos obter a quantidade (-1) de dígitos no número informado int quant = (int)Math.log10(numero); int primeiro_digito = (int)(numero / Math.pow(10, quant)); int ultimo_digito = numero % 10; // soma o primeiro e o último dígito int soma = primeiro_digito + ultimo_digito; // mostra o resultado System.out.println("A soma do primeiro e do último dígito é: " + soma); } } |
Mais Desafios de Programação e 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 |