Să se determine numărul de vocale și frecvența repetării fiecăreia dintre ele.
Răspunsuri la întrebare
Răspuns:
import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;
public class FrecventaVocale {
public static void main(String[] args) {
System.out.print("Introdu cuvantul pentru a verifica frecventa vocalelor >> ");
try (Scanner scannerObj = new Scanner(System.in)) {
String cuvantulCitit = scannerObj.nextLine();
System.out.println("In cuvantul " + cuvantulCitit + " avem urmatoarea frecventa a vocalelor:");
afisareNumarVocale(cuvantulCitit);
}
}
private static void afisareNumarVocale(String cuvantulCitit) {
String[] vectorVocale = {"A", "E", "I", "O", "U", "a", "e", "i", "o", "u"};
HashMap<String, Integer> frecventaVocale = new HashMap<>();
Arrays.stream(vectorVocale).forEach(vocalaCurenta -> frecventaVocale.put(vocalaCurenta, 0));
for (char caracterCurent : cuvantulCitit.toCharArray()) {
String cheieCurenta = String.valueOf(caracterCurent);
if (frecventaVocale.containsKey(cheieCurenta))
frecventaVocale.put(cheieCurenta, frecventaVocale.get(cheieCurenta) + 1);
}
frecventaVocale.forEach((cheieCurenta, valoareCurenta) -> {
if (valoareCurenta > 0)
System.out.printf("Vocala %s apare %s%n", cheieCurenta, (valoareCurenta == 1) ? "odata" : ("de " + valoareCurenta + " ori!"));
});
}
}
Explicație: