Bom dia!
Estou fazendo um exercício em JAVA cujo objetivo é ler um arquivo .txt de entrada e a quantidade de letras, vogais, consoantes e palavras dentro do arquivo. O algoritmo que eu escrevi cria os arquivos, mas o problema está na contagem dessas letras (é um problema de iniciantes, como eu haha)
Segue o código-fonte:
FileWriter entrada = new FileWriter("entrada.txt");
entrada.write("aaa cc\n");
entrada.close();
BufferedReader txt = new BufferedReader(new FileReader("entrada.txt"));
String texto = txt.readLine();
int espaço = 0;
int consoante = 0;
int vogal = 0;
int letra = 0;
int palavra = 0;
while (txt.read() != -1) {
for (int i = 0; i < texto.length(); i++) {
if (texto.charAt(i) == ' ') {
espaço++;
} else if (texto.charAt(i) != 'a' & texto.charAt(i) != 'e' & texto.charAt(i) != 'i'
& texto.charAt(i) != 'o' & texto.charAt(i) != 'u') {
consoante++;
letra++;
} else {
vogal++;
letra++;
}
if (i+1 < texto.length())
if (texto.charAt(i + 1) == ' ') {
palavra++;
}
}
}
FileWriter saida = new FileWriter("saida.txt");
saida.write("Número de espaços: "+espaço+" \n");
saida.write("Número de consoantes: "+consoante+" \n");
saida.write("Número de vogais: "+vogal+" \n");
saida.write("Número de letras: "+letra+" \n");
saida.write("Número de palavras: "+palavra+" \n");
saida.close();
Como podem ver, o texto que o algoritmo esta analisando é: “aaa cc” com uma quebra de linha no final. Mas o arquivo de saida imprime 0 para todos os valores, como se não encontrasse nenhuma letra. Alguém poderia me ajudar a solucionar este problema? Grato!