Условие задачи:
Гласные и согласные
Написать программу, которая вводит с клавиатуры строку текста.
Программа должна вывести на экран две строки:
1. первая строка содержит только гласные буквы из введённой строки.
2. вторая - только согласные буквы и знаки препинания из введённой строки.
Буквы соединять пробелом, каждая строка должна заканчиваться пробелом.
Пример ввода:
Мама мыла раму.
Пример вывода:
а а ы а а у
М м м л р м .
Требования:
1. Программа должна считывать данные с клавиатуры.
2. Программа должна выводить две строки.
3. Первая строка должна содержать только гласные буквы из введенной строки, разделенные пробелом.
4. Вторая строка должна содержать только согласные и знаки препинания из введенной строки, разделенные пробелом.
5. Каждая строка должна заканчиваться пробелом.
Я написал 3 разных версии кода (показываю проверочную):
public class Solution {
final char[] vowels = new char[] {'а','е','ё','и','о','у','ы','э','ю','я'};
final char[] consonants = {'б','в','г','д','ж','з','й','к','л','м','н','п','р','с','т','ф','х','ц','ч','ш','щ'};
final char[] punctuationMarks = {',','.','/','-'};
final char space = ' ';
public static void main (String[] args)throws IOException{
Solution alphabet = new Solution();
BufferedReader userInput = new BufferedReader(new InputStreamReader(System.in));
while (true){
String userWords = userInput.readLine();
System.out.println(isVowel(userWords.charAt(0)));
}
}
public static boolean isVowel(char c) {
Solution alphabet = new Solution();
for (char cell : alphabet.vowels){
if (c==cell){
return true;
} else {
return false;
}
}
return false;
}
}
Почему возвращается а - true,
а дальше 'е','ё','и','о','у','ы','э','ю','я' - false?