Вывела отдельным методом поиск на согласные буквы и знаки препинания. Но валидация все равно не проходит.
package com.javarush.task.task09.task0923;
/*
Гласные и согласные
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Solution {
public static char[] vowels = new char[]{'а', 'я', 'у', 'ю', 'и', 'ы', 'э', 'е', 'о', 'ё'};
public static char[] prep = new char[]{'б','в','г','д','ж','з','й','к','л', 'м','н','п', 'р', 'с', 'т', 'ф','ч','х',
'ц','ч','ш','щ', '.', ',', ';', ':', '?', '!', '-', '(', ')', '\"'};
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String text = reader.readLine();
List<String> ArrayVowel = new ArrayList<>();
List<String> ArrayConsonant = new ArrayList<>();
char[] ArrayText = text.toCharArray();
for (int i = 0; i < ArrayText.length; i++) {
String s = Character.toString(ArrayText[i]).toLowerCase();
if (isVowel(ArrayText[i])) {
ArrayVowel.add(s);
} else{
if (isPrep(ArrayText[i]))
{
ArrayConsonant.add(s);
}}
}
for (int i = 0; i < ArrayVowel.size(); i++) {
System.out.print(ArrayVowel.get(i) + " ");
}
System.out.println();
for (int i = 0; i < ArrayConsonant.size(); i++) {
System.out.print(ArrayConsonant.get(i) + " ");
}
}
// метод проверяет, гласная ли буква
public static boolean isVowel(char c) {
c = Character.toLowerCase(c); // приводим символ в нижний регистр - от заглавных к строчным буквам
for (char d : vowels) { // ищем среди массива гласных
if (c == d) {
return true;
}
}
return false;
}
public static boolean isPrep(char c) {
c = Character.toLowerCase(c); // приводим символ в нижний регистр - от заглавных к строчным буквам
for (char d : prep) { // ищем среди массива гласных
if (c == d) {
return true;
}
}
return false;
}
}