Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- import java.util.Scanner;
- import java.io.*;
- import java.io.PrintWriter;
- import java.util.HashSet;
- public class Main {
- final static Scanner scan = new Scanner(System.in);
- public static boolean isIncorrect;
- public static void main(String[] args) {
- final char[] arrVowels = new char[]{'а', 'у','о', 'и', 'э' ,'ы','я' , 'ю', 'ё', 'е'};
- final char[] arrConsonants = new char[]{ 'б','в', 'г', 'д', 'ж', 'з', 'й', 'л', 'м', 'н', 'р','к', 'п', 'с', 'т', 'ф', 'х', 'ц', 'ч', 'ш', 'щ' };
- HashSet<Character> setConsonants = null;
- HashSet<Character> setVowels = null;
- setConsonants = new HashSet<Character>();
- setVowels = new HashSet<Character>();
- for(int i = 0; i < arrVowels.length; i++)
- {
- setVowels.add(arrVowels[i]);
- }
- for(int i = 0; i < arrConsonants.length; i++)
- {
- setConsonants.add(arrConsonants[i]);
- }
- printInfo();
- String text;
- text = chooseInput();
- chooseOutput(text, setVowels, setConsonants );
- scan.close();
- }
- public static void printInfo() {
- System.out.println("Программа описывает множество гласных и согласных букв русского алфавита и формирует множество гласных и согласных букв из предложения");
- }
- public static HashSet<Character> getSetInText( HashSet<Character> stAlpha, String text)
- {
- HashSet<Character> setInText = new HashSet<Character>() ;
- for (int i = 0; i < text.length(); i++)
- {
- if (stAlpha.contains(text.charAt(i)))
- {
- setInText.add(text.charAt(i));
- }
- }
- return setInText;
- }
- public static String input() {
- String str;
- str = scan.nextLine();
- if (str.isEmpty()) {
- isIncorrect = true;
- System.err.print("Ошибка. Строка не может быть пустой. ");
- }
- return str;
- }
- public static String readTextFromConsole() {
- String text;
- do {
- isIncorrect = false;
- System.out.println("Введите строку:");
- text = input();
- } while (isIncorrect);
- return text;
- }
- public static String chooseInput() {
- String option;
- String text = null;
- System.out.println("Выберите способ ввода данных.\n" +
- "Введите 'console', если хотите ввести данные через консоль.\n"
- + "Введите 'file', если хотите передать данные из файла");
- option = chooseAction();
- if (option.equalsIgnoreCase("console")) {
- text = readTextFromConsole();
- } else
- text = readFile();
- return text;
- }
- public static String readPath() {
- String path;
- System.out.println("Введите путь к файлу:");
- do {
- isIncorrect = false;
- path = scan.nextLine();
- File file = new File(path);
- if (!file.exists() || !path.endsWith(".txt") || file.isDirectory()) {
- isIncorrect = true;
- System.err.println("Файл недоступен. Повторите ввод:");
- }
- } while (isIncorrect);
- return path;
- }
- public static String readTextFromFile(Scanner fscan) {
- String text;
- text = fscan.nextLine();
- if (text.isEmpty()) {
- isIncorrect = true;
- System.err.print("Ошибка. Файл пуст. ");
- }
- return text;
- }
- public static String readFile() {
- String path;
- String text = null;
- do {
- isIncorrect = false;
- path = readPath();
- Scanner fscan = null;
- try {
- fscan = new Scanner(new File(path));
- } catch (FileNotFoundException e) {
- System.out.println(e.getMessage());
- }
- if (!isIncorrect)
- text = readTextFromFile(fscan);
- fscan.close();
- } while (isIncorrect);
- return text;
- }
- public static String chooseAction() {
- String input;
- do {
- isIncorrect = false;
- input = scan.nextLine();
- if (!input.equalsIgnoreCase("console") && !input.equalsIgnoreCase("file")) {
- isIncorrect = true;
- System.err.println("Ошибка. Введите 'console' или 'file':");
- }
- } while (isIncorrect);
- return input;
- }
- public static void writeConsole(String text, HashSet<Character> vowels, HashSet<Character> consonants ) {
- int countAlphaVowels = 0;
- int countAlphaConsonants = 0;
- HashSet<Character> vowelsInText = null;
- HashSet<Character> consonantsInText = null;
- vowelsInText = getSetInText(vowels, text);
- countAlphaVowels = vowelsInText.size();
- if (countAlphaVowels != 0)
- {
- System.out.println("Элементы в множестве гласных букв:");
- for (int i : vowelsInText)
- {
- System.out.print((char)i + " ");
- }
- System.out.println();
- System.out.println("Количество элементов в множестве гласных букв: " + countAlphaVowels);
- }
- else
- {
- System.out.println("В множестве гласных букв нет элементов.");
- }
- consonantsInText = getSetInText(consonants, text);
- countAlphaConsonants = consonantsInText.size();
- if (countAlphaConsonants != 0)
- {
- System.out.println("Элементы в множестве согласных букв: ");
- for (int i : consonantsInText)
- {
- System.out.print((char)i + " ");
- }
- System.out.println();
- System.out.println("Количество элементов в множестве согласных букв: " + countAlphaConsonants);
- }
- else
- {
- System.out.println("В множестве согласных букв нет элементов.");
- }
- }
- public static void writeFile(String text, HashSet<Character> vowels, HashSet<Character> consonants ) {
- do {
- isIncorrect = false;
- try (PrintWriter pw = new PrintWriter(new FileWriter(readPath(), false))) {
- int countAlphaVowels = 0;
- int countAlphaConsonants = 0;
- HashSet<Character> vowelsInText = null;
- HashSet<Character> consonantsInText = null;
- vowelsInText = getSetInText(vowels, text);
- countAlphaVowels = vowelsInText.size();
- if (countAlphaVowels != 0)
- {
- System.out.println("Элементы в множестве гласных букв:");
- for (int i : vowelsInText)
- {
- pw.print((char)i + " ");
- }
- pw.println();
- pw.println("Количество элементов в множестве гласных букв: " + countAlphaVowels);
- }
- else
- {
- pw.println("В множестве гласных букв нет элементов.");
- }
- consonantsInText = getSetInText(consonants, text);
- countAlphaConsonants = consonantsInText.size();
- if (countAlphaConsonants != 0)
- {
- pw.println("Элементы в множестве согласных букв: ");
- for (int i : consonantsInText)
- {
- pw.print((char)i + " ");
- }
- pw.println();
- pw.println("Количество элементов в множестве согласных букв: " + countAlphaConsonants);
- }
- else
- {
- pw.println("В множестве согласных букв нет элементов.");
- }
- pw.println("Информация успешно записана в файл.");
- } catch (IOException e) {
- System.err.println(e.getMessage());
- System.err.println("Ошибка. Невозможно записать данные в файл.");
- isIncorrect = true;
- }
- } while (isIncorrect);
- System.out.println("информация успешно записана в файл.");
- }
- public static void chooseOutput(String text, HashSet<Character> vowels, HashSet<Character> consonants) {
- String option;
- System.out.println("Выберите способ вывода результата.\n" +
- "Введите 'console', если хотите вывести результат через консоль.\n" +
- "Введите 'file', если хотите передать результат в файл.");
- option = chooseAction();
- if (option.equals("console"))
- writeConsole(text, vowels, consonants);
- else
- writeFile(text, vowels, consonants);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement