Write a program to accept a sentence and perform the following tasks:
Count number of vowels and consonants present in each word
Generate the output of the frequency in form of a bar graph, where V denotes vowels and C denotes consonants as shown below:
Example:
INPUT:-
HOW ARE YOU?
OUTPUT:-
WORD COUNT:
HOW
V
CC
ARE
VV
C
YOU
VV
C
The thing I am asking is that how can I print V and C, the number of times the vowels and consonants is occurring.. because I can perform this with digits(like if 2 vowel are there so print 2) but I can't figure that out with char value(here, V and C)
I tried this with for loop with if statement.. but that ain't working
Please help me with this... exams are round the corner
Here is an example.
Maintain a String for both vowels, and consonants; I'm using a and b.
Divide the text, s, with the String#split method, and traverse each value.
From here, increment x by 1 for vowels, and y by 1 for consonants.
After the loop, print out an occurrence of either "V", or "C", for each x and y, with the String#repeat method.
String s = "HOW ARE YOU?",
a = "aeiou", b = "bcdfghjklmnpqrstvwxyz";
int i, n, x, y;
char c;
for (String w : s.split(" +")) {
System.out.println(w);
x = y = 0;
for (i = 0, n = w.length(); i < n; i++) {
c = Character.toLowerCase(w.charAt(i));
if (a.indexOf(c) != -1) x++;
else if (b.indexOf(c) != -1) y++;
}
System.out.println("V".repeat(x));
System.out.println("C".repeat(y));
System.out.println();
}
Alternately, utilize the Scanner class to traverse each word.
Scanner s = new Scanner("HOW ARE YOU?");
String w, a = "aeiou", b = "bcdfghjklmnpqrstvwxyz";
int i, n, x, y;
char c;
while (s.hasNext()) {
System.out.println(w = s.next());
x = y = 0;
for (i = 0, n = w.length(); i < n; i++) {
c = Character.toLowerCase(w.charAt(i));
if (a.indexOf(c) != -1) x++;
else if (b.indexOf(c) != -1) y++;
}
System.out.println("V".repeat(x));
System.out.println("C".repeat(y));
System.out.println();
}
Output
HOW
V
CC
ARE
VV
C
YOU?
VV
C