Да, я как бы понимаю что он будет записывать в согласные не только кириллицу. Но всё же...
Самый лучший способ который был в моей голове...
Может кто подскажет - есть ли ещё способы как можно её решить?
Ещё! Почему в методе isVowel(char c) есть
c = Character.toLowerCase(c);
А он не переводит строку в нижний регистр??? Пришлось дописывать самому.package com.javarush.task.task09.task0923;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Гласные и согласные
*/
public class Solution {
private static char[] vowels = new char[]{'а', 'я', 'у', 'ю', 'и', 'ы', 'э', 'е', 'о', 'ё'};
private static ArrayList<Character> countVowels = new ArrayList<>();
private static ArrayList<Character> countConsonants = new ArrayList<>();
private static String text = null;
private static char countText;
private static char[] count;
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
text = reader.readLine();
count = new char[text.length()];
for(int i = 0; i < text.length(); i++) {
count[i] = text.charAt(i);
}
for(int o = 0; o < text.length(); o++){
countText = count[o];
countText = Character.toLowerCase(countText);
if (countText == ' '){
continue;
}
if (isVowel(countText)) {
countVowels.add(countText);
} else {
countConsonants.add(countText);
}
}
for (char x : countVowels) System.out.print(x + " ");
System.out.println();
for (char с : countConsonants) System.out.print(с + " ");
}
// метод проверяет, гласная ли буква
public static boolean isVowel(char c) {
c = Character.toLowerCase(c); // приводим символ в нижний регистр - от заглавных к строчным буквам
for (char d : vowels) { // ищем среди массива гласных
if (c == d) {
return true;
}
}
return false;
}
}