Estou tentando fazer um código onde o usuário entre com uma palavra e depois com uma letra que tenha nessa palavra e que o programa retorne a porcentagem de letras do tipo que ele digitou que tem na palavra:
digite uma palavra:(amor);
qual letra deseja verificar:(a);
resposta:25%
outro exemplo:
digite uma palavra:(arara);
qual letra deseja verificar:(a);
resposta:60%
esse é o código que fiz:
public class MyClass {
public static void main(String args[]) {
String palavra="arara";
String a;
int n=0;
for(int i=0;i<=palavra.length();i++){
char b = palavra.charAt(i);
a=String.valueOf(b);
if(a.equals("a")){
n++;
}
int porcentagem =((n*100)/palavra.length());
System.out.println(porcentagem);
}
}
}
ele até roda mas o calculo é feito loop a loop e nao sei como tirar desse loop somente o 60.Alguem pode me ajudar?
quando tento tirar o 60 pra usar em outro lugar sai até fumaça kkkk
E’ somente você separa o bloco do for e depois de terminar ele, então faça o calculo da porcentagem.
import java.io.PrintStream;
import java.util.Scanner;
public class Programa {
public static void main(String[] args) {
Programa programa = new Programa();
programa.executar();
}
private final Scanner entrada = new Scanner(System.in);
private final PrintStream saida = System.out;
public void executar() {
saida.print("digite uma palavra: ");
String palavra = entrada.nextLine();
saida.print("qual letra deseja verificar: ");
char letraParaVerificar = entrada.nextLine().charAt(0);
int ocorrencias = 0;
for (char letra : palavra.toCharArray()) {
if (letra == letraParaVerificar) {
ocorrencias++;
}
}
int porcentagem = ocorrencias * 100 / palavra.length();
saida.println(porcentagem);
}
}
2 curtidas
Perfeito.Só não entendi ainda muito bem como tu fez mas é questão de eu analisar ponto a ponto.Muito obrigado!
O que nao tinha entendido era esse laço for pois ainda não tinha visto sendo montado desta forma.Mas já entendi.É sofisticado.
for (char letra : palavra.toCharArray()) {
if (letra == letraParaVerificar) {
ocorrencias++;
} }
Esse laço é o mesmo que fazer assim:
char[] letras = palavra.toCharArray();
for (char letra : letras) {
if (letra == letraParaVerificar) {
ocorrencias++;
}
}
Ou assim:
char[] letras = palavra.toCharArray();
for (int i = 0; i < letras.length; i++) {
char letra = letras[i];
if (letra == letraParaVerificar) {
ocorrencias++;
}
}
1 curtida
Entendi e isso que ainda nao tinha visto.Escrevendo assim fica mais limpo.