Galera não to conseguindo responder a letra d, alguem tiver uma ideia ai, consegui fazer as letras a,b,c usando letra por letra .
segue o codigo.
/*Fazer um Algoritimo que: * a) leia uma frase de 80 caracteres, incluindo brancos; * b) conte quantos brancos existem na frase; * c) conte quantas vezes a letra A aparece; * d) conte quantas vezes ocorre um mesmo par de letras na frase e quais são elas; * e) imprima o que foi calculado nos itens b,c e d. */importjavax.swing.JOptionPane;publicclassEx2_5_1_2{publicstaticvoidmain(String[]args){Stringvetor[]=newString[4];intcontBranco=0,contA=0;for(inti=0;i<=3;i++){vetor[i]=JOptionPane.showInputDialog("Digite uma frase com uma Letra de cada vez: ");if(vetor[i].equals(""))contBranco++;if(vetor[i].equals("a")){contA++;}}System.out.println("Qt de branco: "+contBranco);System.out.println("Qt de ( A ): "+contA);}}
usar um ArrayList, vai adicionando cada par de letras (a posição atual mais a posição posterior…). Aqui se tem todos os pares de letras que o exercicio pede…
depois analisa o que tu tem na listagem obtida e contando as ocorrencias…
… é uma forma bem simples (fraquinha, mas simples…)
até mais rapaz!
renato.marquez
Bom, não sei até que ponto você pode usar a API do Java para resolver o problema, mas se eu tivesse que solucionar esse exercício, faria da seguinte forma:
importjava.util.HashMap;importjava.util.Iterator;importjavax.swing.JOptionPane;/*Fazer um Algoritimo que: * a) leia uma frase de 80 caracteres, incluindo brancos; * b) conte quantos brancos existem na frase; * c) conte quantas vezes a letra A aparece; * d) conte quantas vezes ocorre um mesmo par de letras na frase e quais são elas; * e) imprima o que foi calculado nos itens b,c e d. */publicclassEx2_5_1_2{publicstaticvoidmain(String[]args){//Lê a frase inserida pelo usuário... Daria para fazer lendo letra a letraStringfrase="";do{frase=JOptionPane.showInputDialog("Digite uma frase de até 80 caracteres");}while(frase==null||frase.isEmpty()||frase.length()>80);char[]arrayDeCaracteres=frase.toCharArray();//Armazena todos os caracteres digitados em forma de arrayHashMap<String,Integer>paresDeLetras=newHashMap<String,Integer>();//Cria um mapa que irá armazenar, para cada letra repetida, a sua frequênciaintquantidadeDeEspacosEmBranco=0;//Inteiro que armazena a quantidade de espaços em brancointquantidadeDeLetrasA=0;//Inteiro que armazena a quantidade de letras Afor(inti=0;i<arrayDeCaracteres.length;i++){//Varre todos caracteres do arrayif(arrayDeCaracteres[i]=='A'){//Se for a letra maiúscula A, então incrementa o inteiro que conta a sua quantidadequantidadeDeLetrasA++;}elseif(arrayDeCaracteres[i]==' '){//Se for um espaço em branco, incrementa em 1 a quantidade de espaços em brancoquantidadeDeEspacosEmBranco++;}if(i>0&&arrayDeCaracteres[i]==arrayDeCaracteres[i-1]){//Se a letra atual for igual a anterior (por isso i > 0, pois em i = 0 não existe letra anterior), então realiza o código abaixoIntegervalorAntigo=paresDeLetras.get(String.valueOf(arrayDeCaracteres[i]));//Recupera a frequência da letra encontradaif(valorAntigo==null){//Se for a primeira vez que ela foi encontrada, ou seja, se o objeto for nulo, então cria um novo inteiro contabilizado como 1paresDeLetras.put(String.valueOf(arrayDeCaracteres[i]),newInteger(1));}else{//Caso contrário, pega o valor anterior e incrementaparesDeLetras.put(String.valueOf(arrayDeCaracteres[i]),++valorAntigo);}}}System.out.println("Espaços em Branco: "+quantidadeDeEspacosEmBranco);//Exibe quantidade de espaços em brancoSystem.out.println("Letras A: "+quantidadeDeLetrasA);//Exibe quantidade de letras ASystem.out.println("--------Casos de Pares--------");Iterator<String>it=paresDeLetras.keySet().iterator();//Recupera todas as letras repetidas encontradaswhile(it.hasNext()){//Varre todas as letras através de um IteratorStringletra=it.next();//Recupera o valor atual do IteratorSystem.out.println("Letra: "+letra+"; Frequência: "+paresDeLetras.get(letra)+" vez(es)");//Exibe a letra repetida e sua frequência de repetição na frase}}}
Talvez o código ajude em alguma coisa.
Abraços!
rogeriovaladaoti
Galera ainda não consegui resolver, se alguem puder dar uma luz…
renato.marquez
Chegou a testar o código que postei? Ajudou em alguma coisa? O que faltou ele fazer?
JhowTroMundo
Cara, não sei se eu to enxergando mal ou se vc esqueceu de colocar um espaço entre as aspas. Tem que ser " " ao invés de “”. Uma String vazia é diferente de uma String com um espaço.
Confere ai.
Edit - Realmente vc esqueceu (colei no notepad aqui).
Arruma que deve funcionar.
Voce poderia usar uma String e ir pelo .getCharAt(i).equals(‘char’) também, assim se livraria do array e da restrição de digitar um caracter por vez.