📒 Readme ver 1.0 07.10.2025 16:20
- Реалізувати метод, який приймає на вхід рядок
- Повертає true, якщо рядок закінчується на «ed»
- Повертає false у противному випадку
- Реалізувати метод, який приймає на вхід рядок
- Знаходить всі цифри у рядку
- Повертає їх суму (якщо цифр немає – повертається 0)
- Реалізувати метод, який приймає на вхід рядок
- Знаходить найдовший «блок» однакових символів, що йдуть поспіль
- Повертає довжину цього блоку
- Обробляє порожні рядки
- Реалізувати метод, який приймає на вхід рядок
- Розділяє рядок на слова (слова відокремлюються пробілами)
- Виводить у консоль кожне знайдене слово
- Ігнорує порожні елементи
- Реалізувати метод, який приймає два рядки (A і B)
- Повертає рядок, який складається по черзі з i-их знаків кожного рядка
- Якщо символи в одному з рядків закінчаться, символи іншого рядка дописуються в кінець
graph LR;
A[Завдання 1: Перевірка на 'ed']:::task1 --> B[Прийняти рядок від користувача]:::step1
B --> C[Використати метод endsWith]:::step1
C --> D[Повернути результат перевірки]:::step1
D --> E[Вивести результат у консоль]:::step1
classDef task1 fill:#C8E6C9,stroke:#66BB6A,stroke-width:3px,rx:20,ry:20,color:#1B5E20
classDef step1 fill:#F1F8F4,stroke:#81C784,stroke-width:2px,rx:16,ry:16,color:#2E7D32
graph LR;
A[Завдання 2: Сума цифр]:::task2 --> B[Прийняти рядок від користувача]:::step2
B --> C[Пройтися по кожному символу]:::step2
C --> D[Перевірити чи символ є цифрою]:::step2
D --> E[Додати значення цифри до загальної суми]:::step2
E --> F[Вивести підсумкову суму]:::step2
classDef task2 fill:#B3E5FC,stroke:#4FC3F7,stroke-width:3px,rx:20,ry:20,color:#01579B
classDef step2 fill:#E1F5FE,stroke:#4DD0E1,stroke-width:2px,rx:16,ry:16,color:#0277BD
graph LR;
A[Завдання 3: Найдовший блок]:::task3 --> B[Прийняти рядок від користувача]:::step3
B --> C[Перевірити на порожній рядок]:::step3
C --> D[Порівняти кожен символ з попереднім]:::step3
D --> E[Рахувати довжину поточного блоку]:::step3
E --> F[Зберігати максимальну довжину]:::step3
F --> G[Вивести довжину найдовшого блоку]:::step3
classDef task3 fill:#A5D6A7,stroke:#4CAF50,stroke-width:3px,rx:20,ry:20,color:#1B5E20
classDef step3 fill:#F1F8F4,stroke:#66BB6A,stroke-width:2px,rx:16,ry:16,color:#2E7D32
graph LR;
A[Завдання 4: Виведення слів]:::task4 --> B[Прийняти рядок від користувача]:::step4
B --> C[Розділити рядок за пробілами]:::step4
C --> D[Перевірити кожне слово на порожність]:::step4
D --> E[Вивести кожне непорожнє слово]:::step4
classDef task4 fill:#80DEEA,stroke:#26C6DA,stroke-width:3px,rx:20,ry:20,color:#006064
classDef step4 fill:#E0F7FA,stroke:#4DD0E1,stroke-width:2px,rx:16,ry:16,color:#00838F
graph LR;
A[Завдання 5: Чередування рядків]:::task5 --> B[Прийняти два рядки A і B]:::step5
B --> C[Визначити максимальну довжину]:::step5
C --> D[Почергово брати символи з обох рядків]:::step5
D --> E[Додавати символи до результату]:::step5
E --> F[Вивести результуючий рядок]:::step5
classDef task5 fill:#FFCCBC,stroke:#FF7043,stroke-width:3px,rx:20,ry:20,color:#BF360C
classDef step5 fill:#FBE9E7,stroke:#FF8A65,stroke-width:2px,rx:16,ry:16,color:#D84315
Note
Метод перевіряє чи закінчується вхідний рядок на «ed» використовуючи вбудований метод endsWith().
public static void task1() {
System.out.println("\n=== ЗАДАНИЕ 1 ===");
System.out.print("Введите строку: ");
String text = scanner.nextLine();
boolean result = text.endsWith("ed");
System.out.println("Результат: " + result);
}
public static void task1() {
System.out.println("\n=== ЗАДАНИЕ 1 ===");
System.out.print("Введите строку: ");
String text = scanner.nextLine();
boolean result = text.endsWith("ed");
System.out.println("Результат: " + result);
}Note
Метод проходить по кожному символу рядка, визначає чи є символ цифрою за допомогою Character.isDigit(), і додає числове значення цифри до загальної суми.
public static void task2() {
System.out.println("\n=== ЗАДАНИЕ 2 ===");
System.out.print("Введите строку: ");
String text = scanner.nextLine();
int total = 0;
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if (Character.isDigit(c)) {
total += Character.getNumericValue(c);
}
}
System.out.println("Сумма цифр: " + total);
}
public static void task2() {
System.out.println("\n=== ЗАДАНИЕ 2 ===");
System.out.print("Введите строку: ");
String text = scanner.nextLine();
int total = 0;
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if (Character.isDigit(c)) {
total += Character.getNumericValue(c);
}
}
System.out.println("Сумма цифр: " + total);
}Note
Метод знаходить найдовшу послідовність однакових символів. Алгоритм порівнює кожен символ з попереднім, рахуючи довжину поточного блоку та зберігаючи максимальне значення.
public static void task3() {
System.out.println("\n=== ЗАДАНИЕ 3 ===");
System.out.print("Введите строку: ");
String text = scanner.nextLine();
if (text.isEmpty()) {
System.out.println("Длина самого длинного блока: 0");
return;
}
int maxLength = 1;
int currentLength = 1;
for (int i = 1; i < text.length(); i++) {
if (text.charAt(i) == text.charAt(i - 1)) {
currentLength++;
maxLength = Math.max(maxLength, currentLength);
} else {
currentLength = 1;
}
}
System.out.println("Длина самого длинного блока: " + maxLength);
}
public static void task3() {
System.out.println("\n=== ЗАДАНИЕ 3 ===");
System.out.print("Введите строку: ");
String text = scanner.nextLine();
if (text.isEmpty()) {
System.out.println("Длина самого длинного блока: 0");
return;
}
int maxLength = 1;
int currentLength = 1;
for (int i = 1; i < text.length(); i++) {
if (text.charAt(i) == text.charAt(i - 1)) {
currentLength++;
maxLength = Math.max(maxLength, currentLength);
} else {
currentLength = 1;
}
}
System.out.println("Длина самого длинного блока: " + maxLength);
}Note
Метод розділяє рядок на слова за допомогою регулярного виразу \\s+ (один або більше пробілів) та виводить кожне непорожнє слово у консоль.
public static void task4() {
System.out.println("\n=== ЗАДАНИЕ 4 ===");
System.out.print("Введите строку: ");
String text = scanner.nextLine();
String[] words = text.split("\\s+");
System.out.println("Слова:");
for (String word : words) {
if (!word.isEmpty()) {
System.out.println(word);
}
}
}
public static void task4() {
System.out.println("\n=== ЗАДАНИЕ 4 ===");
System.out.print("Введите строку: ");
String text = scanner.nextLine();
String[] words = text.split("\\s+");
System.out.println("Слова:");
for (String word : words) {
if (!word.isEmpty()) {
System.out.println(word);
}
}
}Note
Метод створює новий рядок, почергово беручи символи з двох вхідних рядків. Використовує StringBuilder для ефективної конкатенації та продовжує додавати символи навіть коли один з рядків закінчується.
public static void task5() {
System.out.println("\n=== ЗАДАНИЕ 5 ===");
System.out.print("Введите первую строку: ");
String strA = scanner.nextLine();
System.out.print("Введите вторую строку: ");
String strB = scanner.nextLine();
StringBuilder result = new StringBuilder();
int maxLen = Math.max(strA.length(), strB.length());
for (int i = 0; i < maxLen; i++) {
if (i < strA.length()) {
result.append(strA.charAt(i));
}
if (i < strB.length()) {
result.append(strB.charAt(i));
}
}
System.out.println("Результат: " + result.toString());
}
public static void task5() {
System.out.println("\n=== ЗАДАНИЕ 5 ===");
System.out.print("Введите первую строку: ");
String strA = scanner.nextLine();
System.out.print("Введите вторую строку: ");
String strB = scanner.nextLine();
StringBuilder result = new StringBuilder();
int maxLen = Math.max(strA.length(), strB.length());
for (int i = 0; i < maxLen; i++) {
if (i < strA.length()) {
result.append(strA.charAt(i));
}
if (i < strB.length()) {
result.append(strB.charAt(i));
}
}
System.out.println("Результат: " + result.toString());
}Note
Програма реалізує інтерактивне меню з можливістю вибору будь-якого завдання. Використовується цикл while(true) та конструкція switch для обробки вибору користувача.
public static void main(String[] args) {
while (true) {
showMenu();
System.out.print("Выберите задание (0-5): ");
String choice = scanner.nextLine();
switch (choice) {
case "1":
task1();
break;
case "2":
task2();
break;
case "3":
task3();
break;
case "4":
task4();
break;
case "5":
task5();
break;
case "0":
System.out.println("\nПрограмма завершена.");
scanner.close();
return;
default:
System.out.println("\nОшибка! Выберите число от 0 до 5.");
}
System.out.print("\nНажмите Enter для продолжения...");
scanner.nextLine();
}
}
public static void main(String[] args) {
while (true) {
showMenu();
System.out.print("Выберите задание (0-5): ");
String choice = scanner.nextLine();
switch (choice) {
case "1":
task1();
break;
case "2":
task2();
break;
case "3":
task3();
break;
case "4":
task4();
break;
case "5":
task5();
break;
case "0":
System.out.println("\nПрограмма завершена.");
scanner.close();
return;
default:
System.out.println("\nОшибка! Выберите число от 0 до 5.");
}
System.out.print("\nНажмите Enter для продолжения...");
scanner.nextLine();
}
}