Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Como testar se duas palavras são anagramas uma da outra - Solução usando ordenação de strings - Exercícios Resolvidos de JavaQuantidade de visualizações: 1423 vezes |
Pergunta/Tarefa: Dadas duas palavras p1 e p2, escreva um código Java que informa se uma palavra é anagrama da outra. Um anagrama é uma espécie de jogo de palavras criado com a reorganização das letras de uma palavra ou expressão para produzir outras palavras ou expressões, utilizando todas as letras originais exatamente uma vez. Para esta solução você deverá, obrigatoriamente, usar a ordenação das duas strings em ordem alfabética. Seu programa deverá exibir a seguinte saída: Informe a primeira palavra: perda Informe a segunda palavra: pedra As duas palavras são anagramas uma da outra. Veja a resolução com código comentado em Java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // variáveis usadas para resolver o problema String palavra1, palavra2; boolean anagramas = true; // Verdadeiro char palavra1Array[], palavra2Array[]; // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar as duas palavras System.out.print("Informe a primeira palavra: "); palavra1 = entrada.nextLine(); System.out.print("Informe a segunda palavra: "); palavra2 = entrada.nextLine(); // o primeiro passo é testar os tamanhos das duas strings if (palavra1.length() != palavra2.length()){ anagramas = false; // falso } else{ // vamos converter as duas strings para letras minúsculas palavra1 = palavra1.toLowerCase(); palavra2 = palavra2.toLowerCase(); // agora ordenamos as duas strings em ordem alfabética palavra1Array = ordenar(palavra1); palavra2Array = ordenar(palavra2); // percorremos todos os os caracteres do primeiro vetor for(int i = 0; i < palavra1Array.length; i++) { // os dois caracteres nos dois vetores são diferentes? if(palavra1Array[i] != palavra2Array[i]) { anagramas = false; // falso } } } if(anagramas){ System.out.println("As duas palavras são anagramas uma da outra."); } else{ System.out.println("As duas palavras não são anagramas uma da outra."); } } // Esta função é usada para ordenar a string em ordem alfabética // O retorno é um vetor de caracteres public static char[] ordenar(String texto){ char texto_array[] = texto.toCharArray(); char temp; int i, j; for(i = 0; i < texto_array.length - 1; i++){ for(j = i + 1; j < texto_array.length; j++){ if (texto_array[i] > texto_array[j]) { temp = texto_array[i]; texto_array[i] = texto_array[j]; texto_array[j] = temp; } } } return texto_array; } } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços |
Exercícios Resolvidos de Java - Escreva um programa (algorítmo) Java que usa o laço do...while para ler um número indeterminado de idades. A condição de parada do laço é o valor da idade igual a 0Quantidade de visualizações: 8921 vezes |
Pergunta/Tarefa: Escreva um programa (algorítmo) Java que usa o laço do...while para ler um número indeterminado de idades de algumas pessoas. A condição de parada do laço é o valor da idade igual a 0. Calcule a escreva a idade média deste grupo de pessoas. Sua saída deverá ser parecida com: Informe a idade: 19 Informe a idade: 30 Informe a idade: 21 Informe a idade: 45 Informe a idade: 0 A idade média é: 28.75 Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package exercicios; import java.util.Scanner; public class Exercicios { public static void main(String[] args) { // vamos efetuar a leitura usando a classe Scanner Scanner entrada = new Scanner(System.in); int idade; // guarda a idade lida de cada indivíduo double idade_media; // a idade média calculada int soma = 0; // a soma das idades de cada indivíduo int contador = 0; // conta as idades lidas // laço do...while que repetirá até que o valor da idade seja 0 do{ System.out.print("Informe a idade: "); idade = Integer.parseInt(entrada.nextLine()); // a idade lida é diferente de 0? if(idade != 0){ soma = soma + idade; // soma mais esta idade contador++; // aumenta a quantidade de idades lidas } }while(idade != 0); // calcula a idade média // note que forcei contador para o tipo double antes da divisão // isso faz com que o resultado seja do tipo double idade_media = soma / (contador * 1.0); // finalmente mostramos o resultado System.out.println("A idade média é: " + idade_media); } } |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como definir a cor de fundo para um JTextAreaQuantidade de visualizações: 8859 vezes |
Nesta dica mostrarei como podemos aplicar uma cor de fundo a um controle área de texto, ou seja, um JTextArea do Java Swing. Para isso nós só precisamos fazer uma chamada ao seu método setBackground() e passar a cor desejada. Veja um exemplo de como isso pode ser feito: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- textArea = new JTextArea(10, 20); // Define a cor de fundo textArea.setBackground(Color.YELLOW); Note que aqui nós temos uma variável chamada textArea, do tipo JTextArea. |
Java ::: Dicas & Truques ::: Recursão (Recursividade) |
Java Avançado - Como listar o conteúdo de um diretório recursivamenteQuantidade de visualizações: 11000 vezes |
Nesta dica mostrarei como podemos usar recursividade (recursão) para listar todo o conteúdo de um diretório. Este é um exercício para melhorar o seu entendimento de funções recursivas em Java. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.io.*; import java.util.*; public class Estudos { static int indentLevel = -1; public static void main(String[] args) { listPath(new File("c:\\estudos_c")); } static void listPath(File path) { File files[]; indentLevel++; files = path.listFiles(); Arrays.sort(files); for (int i = 0, n = files.length; i < n; i++) { for (int indent = 0; indent < indentLevel; indent++) { System.out.print(" "); } System.out.println(files[i].getName()); if(files[i].isDirectory()) { listPath(files[i]); } } indentLevel--; } } Ao executar este código nós teremos o seguinte resultado: DICA.txt estudos .vs estudos v16 .suo Browse.VC.db ipch AutoPCH 1dcb307edee5acf8 ORIGEM.ipch Debug estudos.exe estudos.exe.recipe estudos.ilk estudos.log estudos.pdb estudos.tlog CL.command.1.tlog CL.read.1.tlog CL.write.1.tlog estudos.lastbuildstate link.command.1.tlog link.read.1.tlog link.write.1.tlog estudos.vcxproj.FileListAbsolute.txt Origem.obj vc142.idb vc142.pdb estudos.sln estudos.vcxproj estudos.vcxproj.filters estudos.vcxproj.user Origem.cpp Estudos_C.dev Estudos_C.exe Estudos_C.layout main.c main.o Makefile.win |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
VB.NET - Como comparar strings em VB.NET usando o método Compare() da classe String do .NET Framework |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |