Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.Scanner;
- import java.util.Set;
- public class Main {
- static Scanner scanner;
- static String getInputType() {
- String ret = "";
- boolean isIncorrect = true;
- do {
- System.out.println("Выберите способ ввода предложения файл/консоль (ф/к)");
- ret = scanner.nextLine();
- if (ret.equalsIgnoreCase("файл") || ret.equalsIgnoreCase("ф")) {
- ret = "File";
- isIncorrect = false;
- } else if (ret.equalsIgnoreCase("консоль") || ret.equalsIgnoreCase("к")) {
- ret = "Console";
- isIncorrect = false;
- }
- } while (isIncorrect);
- return ret;
- }
- static String getInputFilePath() {
- String path;
- boolean isIncorrect = true;
- do {
- System.out.println("Введите абсолютный путь к файлу ");
- path = scanner.nextLine();
- File file = new File(path);
- if (file.isFile() && file.exists()) {
- isIncorrect = false;
- } else {
- System.out.println("Файл не найден");
- }
- } while (isIncorrect);
- return path;
- }
- static String getInputTextFromConsole() {
- String ret;
- System.out.println("Введите исходное предложение");
- ret = scanner.nextLine();
- return ret;
- }
- static String getInputTextFromFile() throws FileNotFoundException {
- String ret = "";
- String filePath;
- filePath = getInputFilePath();
- File file = new File(filePath);
- Scanner reader = new Scanner(file);
- while (reader.hasNextLine()) {
- ret += reader.nextLine();
- }
- return ret;
- }
- static String getInputText() throws FileNotFoundException {
- String ret = "";
- String inputType;
- inputType = getInputType();
- if (inputType.equals("Console")) {
- ret = getInputTextFromConsole();
- } else if (inputType.equals("File")) {
- ret = getInputTextFromFile();
- }
- return ret;
- }
- static int getEntryCount(String input, char symbol) {
- int count = 0;
- for (int i = 0; i < input.length(); i++) {
- if (input.charAt(i) == symbol) {
- count++;
- }
- }
- return count;
- }
- static ArrayList<Character> getVowels(String inputText) {
- ArrayList<Character> ret = new ArrayList<Character>();
- HashSet<Character> vowels = new HashSet<Character>();
- vowels.add('a');
- vowels.add('e');
- vowels.add('y');
- vowels.add('i');
- vowels.add('o');
- vowels.add('u');
- inputText = inputText.toLowerCase();
- for (int i = 0; i < inputText.length(); i++) {
- if (vowels.contains(inputText.charAt(i)) && getEntryCount(inputText, inputText.charAt(i)) == 1) {
- ret.add(inputText.charAt(i));
- }
- }
- return ret;
- }
- static ArrayList<Character> sortArray(ArrayList<Character> unSortedArray) {
- char temp;
- int size = unSortedArray.size() - 1;
- for (int i = 0; i < size; i++)
- for (int j = 0; j < size; j++)
- if (unSortedArray.get(j) > unSortedArray.get(j + 1)) {
- temp = unSortedArray.get(j + 1);
- unSortedArray.set(j + 1, unSortedArray.get(j));
- unSortedArray.set(j, temp);
- }
- return unSortedArray;
- }
- static ArrayList<Character> getSortedVowels(String inputText) {
- ArrayList<Character> vowels = getVowels(inputText);
- vowels = sortArray(vowels);
- return vowels;
- }
- static String getOutputDirectory() {
- String ret;
- boolean isIncorrect = true;
- do {
- System.out.println("\nВведите директорию, в которую хотите сохранить вывод программы");
- ret = scanner.nextLine();
- File outputDirectory = new File(ret);
- if (outputDirectory.isDirectory() && outputDirectory.exists()) {
- isIncorrect = false;
- } else {
- System.out.println("Такой директории не существует.Попробуйте ещё раз");
- }
- } while (isIncorrect);
- return ret;
- }
- static void printOutputToFile(ArrayList<Character> toPrint) throws IOException {
- String directory;
- directory = getOutputDirectory();
- FileWriter myWriter = new FileWriter(directory + "\\output.txt");
- myWriter.write("Гласные буквы, которые входят только в одно слово: \n");
- for (int i = 0; i < toPrint.size(); i++) {
- myWriter.write(toPrint.get(i) + " ");
- }
- myWriter.close();
- System.out.println("Файл сохранён по указанному пути");
- }
- static void printOutputToConsole(ArrayList<Character> toPrint) {
- System.out.println("Гласные буквы, которые входят только в одно слово: \n");
- for (int i = 0; i < toPrint.size(); i++) {
- System.out.print(toPrint.get(i) + " ");
- }
- }
- public static void main(String[] args) throws IOException {
- scanner = new Scanner(System.in);
- String inputString = getInputText();
- ArrayList<Character> vowels = getSortedVowels(inputString);
- printOutputToConsole(vowels);
- printOutputToFile(vowels);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement