Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

panox

Exercicio Java

Recommended Posts

Olá a todos, tudo bom ?

 

Eu estou cursando os módulos de Java SE na Impacta Tecnologia e ontem o professor passou alguns exercícios de fixação e estou tendo problema no ultimo deles, gostaria de saber se vocês saberiam me dizer aonde estou errando nesta rotina.

 

Eu tenho uma String com uma palavra ou frase qualquer, a partir desta String, eu tenho que dizer quantas vezes cada letra apareceu nessa frase, em no máximo 10 linhas ( ja construi o método de um modo mais extenso sem o uso de arrays, e usando switch/case - 100 linhas )

 

e esta é a rotina que estou tentando fazer, mas estou travando na hora de contar cada letra e criar um array de int para conta-las.

 


public class ContagemAlfabeto {
    public static void main(String[] args){

        String nome = "IMPACTA TECNOLOGIA ELETRONICA";

        for(int a = 0; a < nome.length(); a++){

            char[] letra = new char[]{nome.charAt(a)};
            

            for(int i : letra){
            /*
             * Comparação
             * Incremento
             * output de do resultado de cada letra
            */
            }

        }


    }
}

 

Ficaria feliz se alguém pudesse me ajudar a entender o funcionamento desta rotina.

 

Obrigado desde já.

Abraços !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meio ineficiente... mas estou mesmo com pressa http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Tenta se basear nele e dá as melhoradas possiveis

String nome = "IMPACTA TECNOLOGIA";
		int[] cont = new int[nome.length()];
		for (int i = 0; i < nome.length(); ++i) {
			cont[i] = 0;
			for (int j = 0; j < nome.length(); j++) {
				if (nome.charAt(i) == nome.charAt(j)) {
					++cont[i];
				}
			}
			System.out.printf("%c-%d\n", nome.charAt(i), cont[i]);
		}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Obrigado, entendi o que você fez, a única coisa que estou tentando fazer é retirar a duplicidade dele, passando o resultado final para um TreeSet, mas não estou conseguindo fazer nada, segue o meu codigo :

 


import java.util.*;

public class Contagem {
    public static void main(String[] args) {

        String nome = "IMPACTA TECNOLOGIA ELETRONICA";
                int[] cont = new int[nome.length()];
                TreeSet contagem = new TreeSet();
                for (int pos = 0; pos < nome.length(); pos++) {
                        cont[pos] = 0;
                        char[] dados = new char[]{contagem.add(nome.charAt(pos)).toArray()};
                        for (int a = 0; a < nome.length(); a++) {
                                 if (nome.charAt(pos) == nome.charAt(a)) {
                                        cont[pos]++;

                                 }
                        }
                        System.out.println("A letra " + dados + " Aparece " + cont[pos] + " vezes.");
                }

    }
}


Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma olhada nessa solução... concerteza há alguma solução mais elegante e menos gambiarra... mas funciona

 

Se conseguir melhora-la poste aqui tbm...

 

String name = "IMPACTA TECNOLOGIA";
		char[] chars = name.toCharArray();
		int cont = 0;
		int[] count = new int[chars.length];
		for (int i = 0; i < chars.length - 1; i++) {
			count[i] = 1;
			for (int j = i + 1; j < chars.length; j++) {
				if (chars[j] != ' ' && chars[i] != ' ') {
					if ((chars[i] == chars[j])) {
						count[i]++;
						chars[j] = ' ';
						cont++;
						reajusta(chars, j);
					}
				}
			}

		}

		for (int i = 0; i < chars.length - cont; i++) {
			System.out.printf("%c-%d\n", chars[i], count[i]);
		}

	}

	static void reajusta(char[] array, int pos) {
		for (int i = pos; i < array.length - 1; i++) {
			char aux = array[i + 1];
			array[i + 1] = array[i];
			array[i] = aux;
		}
	}

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.