Imprimir Vogais [RESOLVIDO]

9 respostas
V

Pessoal tem este código que ele me passa a quantidade de vogais que o usuário digita e eu queria que ele me imprimisse somente as vogais... gostaria que alguem me desse uma dica de como eu poderia fazer isso. vou postar o código que tenho para ficar mais fácil.

String msg;



		msg = JOptionPane.showInputDialog("Digite uma frase para se fazer a cntagem das vogais:");


		int ctA, ctE, ctI, ctO, ctU; // declaração de variáveis em conjunto

		// atribuições encadeadas

		ctA = ctE = ctI = ctO = ctU = 0; // equivale a ctA = 0; ctE = 0; ...


		for (int i=0; i<msg.length(); i++) {

		switch (msg.charAt(i)) {

		case 'a': // usando operador compacto (+=)

		case 'A': ctA += 1; // ctA += 1; equivale a ctA = ctA + 1

		break; // quebra ou encerra a execução do switch

		case 'e':

		case 'E': ctE += 1;

		break;

		case 'i':

		case 'I': ctI += 1;

		break;

		case 'o':

		case 'O': ctO += 1;

		break;

		case 'u':

		case 'U': ctU += 1;

		}

		}

		System.out.println();

		System.out.println("Na cadeia de caracteres: \"" + msg + "\".");

		System.out.println("Existem " + ctA + " vogais A.");

		System.out.println("Existem " + ctE + " vogais E.");

		System.out.println("Existem " + ctI + " vogais I.");

		System.out.println("Existem " + ctO + " vogais O.");

		System.out.println("Existem " + ctU + " vogais U.");

		}

9 Respostas

odair.bonin

Dá pra reusar o código fazendo da seguinte forma:

String msg;

		msg = JOptionPane.showInputDialog("Digite uma frase para se fazer a cntagem das vogais:");

		int ctA, ctE, ctI, ctO, ctU; // declaração de variáveis em conjunto

		// atribuições encadeadas

		ctA = ctE = ctI = ctO = ctU = 0; // equivale a ctA = 0; ctE = 0; ...

                StringBuffer buffer = new StringBuffer();

		for (int i=0; i<msg.length(); i++) {

		switch (msg.charAt(i)) {

		case 'a': // usando operador compacto (+=)

		case 'A': ctA += 1;  buffer.append(msg.charAt(i)); // ctA += 1; equivale a ctA = ctA + 1

		break; // quebra ou encerra a execução do switch

		case 'e':

		case 'E': ctE += 1;  buffer.append(msg.charAt(i));

		break;

		case 'i':

		case 'I': ctI += 1;  buffer.append(msg.charAt(i));

		break;

		case 'o':

		case 'O': ctO += 1;  buffer.append(msg.charAt(i));

		break;

		case 'u':

		case 'U': ctU += 1;  buffer.append(msg.charAt(i));

		}

		}

		System.out.println();

		System.out.println("Na cadeia de caracteres: \"" + msg + "\".");

		System.out.println("Existem " + ctA + " vogais A.");

		System.out.println("Existem " + ctE + " vogais E.");

		System.out.println("Existem " + ctI + " vogais I.");

		System.out.println("Existem " + ctO + " vogais O.");

		System.out.println("Existem " + ctU + " vogais U.");

		System.out.println("Somente as vogais: " + buffer.toString());


		}

Veja se funciona ... []´s

V

É isso msmo… cara se eu usar a msma lógica para fazer a mesma coisa com consoante daria certo tbem???

odair.bonin

Daria certo sim …

Vai ficar um pouco grande o código. Mas, deve funcionar sim.

Mas, sempre mais uma maneira de fazer …

[]´s

lina

Oi,

No lugar de switch/case você poderá utilizar if e a tabela ASCII.

Tchauzin!

odair.bonin

Pode também adicionar todas as consoantes em um ArrayList e depois verificar se cada letra da frase “está contido” no Array.

Neste caso só terá 1 if (o que verifica se o array contêm).

Se estiver, mande imprimir …

Só mais uma maneira.

lina

Oi,

Exemplo:

String msg; 
		  
msg = JOptionPane.showInputDialog("Digite uma frase a fazer:");
	  
for (int i=0; i<msg.length(); i++) {   
        	
     char
     ls_letra = msg.toUpperCase().charAt(i);
	        	
     if (ls_letra == 65 || ls_letra == 69 || ls_letra == 73 || ls_letra == 79 || ls_letra == 85)
     {
          // Vogal
     }
     else
     {
          // Consoantes.
     }
}

Tchauzin!

V

Oi lina eu usei o exemplo colocando System.out.print(ls_letra); para imprimir não seria isso???

ele pega oq está minusculo e transforma para maiusculo… mas não separa as consoantes das vogais…

lina

Oi,

Separar ???

Você poderá fazer.:

String msg; 
String ls_vogal = "", ls_consoante = "";
int vogal = 0, consoante = 0;
		  
msg = JOptionPane.showInputDialog("Digite uma frase a fazer:");
  
for (int i=0; i<msg.length(); i++) {   
        	
     char
     ls_letra = msg.toUpperCase().charAt(i);
	        	
     if (ls_letra == 65 || ls_letra == 69 || ls_letra == 73 || ls_letra == 79 || ls_letra == 85)
     {
          // Vogal
          vogal++;
          ls_vogal += ls_letra;
     }
     else
     {
          // Consoantes.
         consoante++;
         ls_consoante += ls_letra;
     }
}

System.out...("Quantidade de vogais: "+vogal+" São elas: "+ls_vogal);
System.out...("Quantidade de consoantes: "+consoante+" São elas: "+ls_consoante);
Tchauzin!
V

Muito obrigado lina me ajudou muito a compreender um pouco as Strings ehehe… mas ta muito longe ainda tenho que me empenhar mais… mas por enqto muito obrigao…

Criado 6 de outubro de 2009
Ultima resposta 6 de out. de 2009
Respostas 9
Participantes 3