Я уже некоторое время искал решение, но мне не удалось найти нужное решение, которое мне было предложено сделать ... Поэтому мне нужно получить строку от пользователя и сосчитать и отобразить все заглавные и строчные гласные в строке. Вот обязательный вывод:
Enter a string:
IAMHERE
a : occured 0
e : occured 0
i : occured 0
o : occured 0
u : occured 0
A : occured 1
O : occured 0
U : occured 0
I : occured 1
E : occured 2
Вот что я сделал до сих пор:
import java.util.Scanner;
public class CountVowels {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a string:");
String input = sc.next();
char[] chars = createArray(input);
countLet(chars);
}
static char[] createArray(String str) {
char[] chars = new char[str.length()];
for (int i = 0; i < chars.length; i++) {
chars[i] = str.charAt(i);
}
return chars;
}
static void countLet(char[] chars) {
char[] vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'O', 'U', 'I', 'E'};
int numberOfVowels = 0;
for (int i = 0; i < chars.length; i++) {
if (chars[i] == vowels[i]) {
numberOfVowels++;
}
System.out.println(vowels[i] + " : occured " + numberOfVowels + " ");
}
}
}
Я знаю, откуда возникла проблема ---> countLet Потому что я сравниваю все символы в последовательности с гласными ... например, первая буква символов - «я», но первая буква гласных - «а», очевидно, что они не равны, тем более что вывод моего кода не сравните буквы «I» и «E», так как ввод меньше vowels.length ...
Вывод последнего кода:
Enter a string:
IAMHERE
a : occured 0
e : occured 0
i : occured 0
o : occured 0
u : occured 0
A : occured 0
O : occured 0
Так что я могу сделать? !