From 7424afd92e983f56223fae3bde77e9fa14e1f893 Mon Sep 17 00:00:00 2001 From: cvoluj Date: Fri, 9 Jun 2023 20:08:36 +0300 Subject: [PATCH] add lab3 --- src/Lab3/Lab3.java | 73 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/Lab3/Lab3.java diff --git a/src/Lab3/Lab3.java b/src/Lab3/Lab3.java new file mode 100644 index 0000000..bf9d210 --- /dev/null +++ b/src/Lab3/Lab3.java @@ -0,0 +1,73 @@ +package Lab3; + +import java.util.Scanner; +import java.util.ArrayList; +import java.util.Collections; + +public class Lab3 { + public static void main(String[] args) { + System.out.println("Введіть текст:"); + Scanner scan = new Scanner(System.in); // Створюємо об'єкт Scanner для зчитування введеного тексту з консолі + String inputText = scan.nextLine(); // Зчитуємо введений текст користувача + StringBuffer textBuffer = new StringBuffer(inputText); // Створюємо відподні об'єкти StringBuffer + StringBuffer result = new StringBuffer(); + + while (!textBuffer.isEmpty()) { // Починаємо цикл, який виконується, доки об'єкт textBuffer не стане порожнім + + int index1 = textBuffer.indexOf("."); // Знаходимо індекси для символів, які закінчують речення + int index2 = textBuffer.indexOf("!"); + int index3 = textBuffer.indexOf("?"); + int index4 = textBuffer.indexOf("..."); + + int[] SplitIndexArray = {index1, index2, index3, index4}; + ArrayList list = new ArrayList<>(); + + for (int j : SplitIndexArray) { // Перебираємо кожну позицію з масиву + if (j >= 0) { // Якщо символ не стоїть перед реченням, додаємо його + list.add(j); + } + } + int min = Collections.min(list); // Знаходимо мінімальну позицію, щоб працювати з першим реченням + String sentenceString = textBuffer.substring(0, min); // Виділяємо перше речення до знайденого розділового знаку + StringBuffer sentence = new StringBuffer(sentenceString); // Створюємо об'єкт StringBuffer для речення з пробілом + + if (sentenceString.contains(" ")) { // Перевіряємо, чи перше речення містить більше одного слова + String firstword1; + String secondword1 = textBuffer.substring(sentence.lastIndexOf(" ") + 1, sentence.length()); // Виділяємо друге слово з речення + String secondword2; + secondword2 = secondword1.substring(0, 1).toUpperCase() + secondword1.substring(1, secondword1.length()); // Першу літеру робимо великою, решту слова копіюємо + StringBuffer secondword = new StringBuffer(secondword2); + + if (sentence.charAt(sentence.indexOf(" ") - 1) == ',') { // Перевіряємо, чи перед першим словом є кома + firstword1 = textBuffer.substring(0, sentence.indexOf(" ") - 1); // Виділяємо перше слово з речення + secondword.append(","); // Додаємо кому до другого слова + } else { + firstword1 = textBuffer.substring(0, sentence.indexOf(" ")); // Виділяємо перше слово з речення + } + + String firstword2 = firstword1.substring(0, 1).toLowerCase() + firstword1.substring(1, firstword1.length()); // Перетворюємо першу літеру першого слова малою + StringBuffer firstword = new StringBuffer(firstword2); + + firstword.insert(0, " "); // Додаємо пробіл перед першим словом + sentence.delete(0, sentence.indexOf(" ")); // Видаляємо перше слово з речення + sentence.insert(0, secondword); // Додаємо друге слово на початок речення + sentence.delete(sentence.lastIndexOf(" "), sentence.length()); // Видаляємо останнє слово з речення + sentence.append(firstword); // Додаємо перше слово в кінець речення + + + } + if ((index1 == index4) && (index1 == min)) { // Перевіряємо випадок, коли речення закінчується на "..." + sentence.append(textBuffer.substring(min, min + 3)); // Додаємо "..." до речення + textBuffer.delete(0, min + 4); // видаляємо з textBuffer + } else { + sentence.append(textBuffer.substring(min, min + 1)); // Додаємо '.' до речення + textBuffer.delete(0, min + 2); // видаляємо з textBuffer + } + + sentence.append(" "); // Додаємо пробіл + result.append(sentence); // Додаємо речення до результату + + } + System.out.println(result); + } +}