Advertisement
deced

Untitled

Nov 4th, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.00 KB | None | 0 0
  1. import java.io.File;
  2. import java.io.FileNotFoundException;
  3. import java.io.FileWriter;
  4. import java.io.IOException;
  5. import java.util.ArrayList;
  6. import java.util.HashSet;
  7. import java.util.Scanner;
  8. import java.util.Set;
  9.  
  10. public class Main {
  11.     static Scanner scanner;
  12.  
  13.     static String getInputType() {
  14.         String ret = "";
  15.         boolean isIncorrect = true;
  16.         do {
  17.             System.out.println("Выберите способ ввода предложения файл/консоль (ф/к)");
  18.             ret = scanner.nextLine();
  19.             if (ret.equalsIgnoreCase("файл") || ret.equalsIgnoreCase("ф")) {
  20.                 ret = "File";
  21.                 isIncorrect = false;
  22.             } else if (ret.equalsIgnoreCase("консоль") || ret.equalsIgnoreCase("к")) {
  23.                 ret = "Console";
  24.                 isIncorrect = false;
  25.             }
  26.         } while (isIncorrect);
  27.         return ret;
  28.     }
  29.  
  30.     static String getInputFilePath() {
  31.         String path;
  32.         boolean isIncorrect = true;
  33.         do {
  34.             System.out.println("Введите абсолютный путь к файлу ");
  35.             path = scanner.nextLine();
  36.             File file = new File(path);
  37.             if (file.isFile() && file.exists()) {
  38.                 isIncorrect = false;
  39.             } else {
  40.                 System.out.println("Файл не найден");
  41.             }
  42.         } while (isIncorrect);
  43.         return path;
  44.     }
  45.  
  46.     static String getInputTextFromConsole() {
  47.         String ret;
  48.         System.out.println("Введите исходное предложение");
  49.         ret = scanner.nextLine();
  50.         return ret;
  51.     }
  52.  
  53.     static String getInputTextFromFile() throws FileNotFoundException {
  54.         String ret = "";
  55.         String filePath;
  56.         filePath = getInputFilePath();
  57.         File file = new File(filePath);
  58.         Scanner reader = new Scanner(file);
  59.         while (reader.hasNextLine()) {
  60.             ret += reader.nextLine();
  61.         }
  62.         return ret;
  63.     }
  64.  
  65.     static String getInputText() throws FileNotFoundException {
  66.         String ret = "";
  67.         String inputType;
  68.         inputType = getInputType();
  69.         if (inputType.equals("Console")) {
  70.             ret = getInputTextFromConsole();
  71.         } else if (inputType.equals("File")) {
  72.             ret = getInputTextFromFile();
  73.         }
  74.         return ret;
  75.     }
  76.  
  77.     static int getEntryCount(String input, char symbol) {
  78.         int count = 0;
  79.         for (int i = 0; i < input.length(); i++) {
  80.             if (input.charAt(i) == symbol) {
  81.                 count++;
  82.             }
  83.         }
  84.         return count;
  85.     }
  86.  
  87.     static ArrayList<Character> getVowels(String inputText) {
  88.         ArrayList<Character> ret = new ArrayList<Character>();
  89.         HashSet<Character> vowels = new HashSet<Character>();
  90.         vowels.add('a');
  91.         vowels.add('e');
  92.         vowels.add('y');
  93.         vowels.add('i');
  94.         vowels.add('o');
  95.         vowels.add('u');
  96.         inputText = inputText.toLowerCase();
  97.         for (int i = 0; i < inputText.length(); i++) {
  98.             if (vowels.contains(inputText.charAt(i)) && getEntryCount(inputText, inputText.charAt(i)) == 1) {
  99.                 ret.add(inputText.charAt(i));
  100.             }
  101.         }
  102.         return ret;
  103.     }
  104.  
  105.     static ArrayList<Character> sortArray(ArrayList<Character> unSortedArray) {
  106.         char temp;
  107.         int size = unSortedArray.size() - 1;
  108.         for (int i = 0; i < size; i++)
  109.             for (int j = 0; j < size; j++)
  110.                 if (unSortedArray.get(j) > unSortedArray.get(j + 1)) {
  111.                     temp = unSortedArray.get(j + 1);
  112.                     unSortedArray.set(j + 1, unSortedArray.get(j));
  113.                     unSortedArray.set(j, temp);
  114.                 }
  115.         return unSortedArray;
  116.     }
  117.  
  118.     static ArrayList<Character> getSortedVowels(String inputText) {
  119.         ArrayList<Character> vowels = getVowels(inputText);
  120.         vowels = sortArray(vowels);
  121.         return vowels;
  122.     }
  123.  
  124.     static String getOutputDirectory() {
  125.         String ret;
  126.         boolean isIncorrect = true;
  127.         do {
  128.             System.out.println("\nВведите директорию, в которую хотите сохранить вывод программы");
  129.             ret = scanner.nextLine();
  130.             File outputDirectory = new File(ret);
  131.             if (outputDirectory.isDirectory() && outputDirectory.exists()) {
  132.                 isIncorrect = false;
  133.             } else {
  134.                 System.out.println("Такой директории не существует.Попробуйте ещё раз");
  135.             }
  136.         } while (isIncorrect);
  137.         return ret;
  138.     }
  139.  
  140.     static void printOutputToFile(ArrayList<Character> toPrint) throws IOException {
  141.         String directory;
  142.         directory = getOutputDirectory();
  143.         FileWriter myWriter = new FileWriter(directory + "\\output.txt");
  144.         myWriter.write("Гласные буквы, которые входят только в одно слово: \n");
  145.         for (int i = 0; i < toPrint.size(); i++) {
  146.             myWriter.write(toPrint.get(i) + " ");
  147.         }
  148.         myWriter.close();
  149.         System.out.println("Файл сохранён по указанному пути");
  150.     }
  151.  
  152.     static void printOutputToConsole(ArrayList<Character> toPrint) {
  153.         System.out.println("Гласные буквы, которые входят только в одно слово: \n");
  154.         for (int i = 0; i < toPrint.size(); i++) {
  155.             System.out.print(toPrint.get(i) + " ");
  156.         }
  157.     }
  158.  
  159.     public static void main(String[] args) throws IOException {
  160.         scanner = new Scanner(System.in);
  161.         String inputString = getInputText();
  162.         ArrayList<Character> vowels = getSortedVowels(inputString);
  163.         printOutputToConsole(vowels);
  164.         printOutputToFile(vowels);
  165.     }
  166.  
  167. }
  168.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement