Практические задачи для работы со строками в Java

Author: Tatyana Milkina

1. Практика методов класса String

  1. Напишите метод, который принимает в качестве параметра любую строку, например “I like Java!!!”. 
  2. Распечатать последний символ строки. Используем метод String.charAt().
  3. Проверить, заканчивается ли ваша строка подстрокой “!!!”. Используем метод String.endsWith().
  4. Проверить, начинается ли ваша строка подстрокой “I like”. Используем метод String.startsWith().
  5. Проверить, содержит ли ваша строка подстроку “Java”. Используем метод String.contains().
  6. Найти позицию подстроки “Java” в строке “I like Java!!!”.
  7. Заменить все символы “а” на “о”. 
  8. Преобразуйте строку к верхнему регистру.
  9. Преобразуйте строку к нижнему регистру.

Смотрите решение задачи в видео.

Решение на Patreon.

2. Составляем строку с помощью класса StringBuilder

  1. Дано два числа, например 3 и 56, необходимо составить следующие строки: 
    3 + 56 = 59 
    3 – 56 = -53 
    3 * 56 = 168. 
    Используем метод StringBuilder.append()
  2. Замените символ “=” на слово “равно”. Используйте методы StringBuilder.replace().

Смотрите решение задачи в видео.

Решение на Patreon.

3. Заменить каждое второе вхождение строки

Напишите метод, заменяющий в строке каждое второе вхождение «object-oriented programming» (не учитываем регистр символов) на «OOP». Например, строка 
"Object-oriented programming is a programming language model organized around objects rather than "actions" and data rather than logic. Object-oriented programming blabla. Object-oriented programming bla."
должна быть преобразована в 

"Object-oriented programming is a programming language model organized around objects rather than "actions" and data rather than logic. OOP blabla. Object-oriented programming bla."

Решение на Patreon.

4. Найти два средних знака строки

Даны строки разной длины (длина - четное число), необходимо вернуть ее два средних знака. Например, если дана строка "string"  результат будет "ri", для строки "code" результат "od",  для "Practice" результат "ct".

Решение на Patreon.

5. Список студентов

Создать строку, используя форматирование: Студент [Фамилия] получил [оценка] по [предмету]. Форматирование и вывод строки на консоль написать в отдельном методе, который принимает фамилию, оценку и название предмета в качестве параметров. Выделить под фамилию 15 символов, под оценку 3 символа, под предмет – 10.

Пример вывода:

Студент Иванов            получил 5   по Математике

Студент Петрова         получил 4   по Физике    

Студент Сидорова        получил 3   по Программированию

Смотрите решение задачи в видео.

Решение на Patreon.

6. Отчет о сотрудниках, часть 1

  1. Создать класс Employee, у которого есть переменные класса - fullname, salary.
  2. Создать массив содержащий несколько объектов этого типа.
  3. Создать класс Report  со статическим методом generateReport, в котором выводится информация о зарплате всех сотрудников.
  4. Используйте форматирование строк. Пусть salary будет выровнено по правому краю, десятичное значение имеет 2 знака после запятой и можете добавить что-нибудь свое.

Решение на Patreon.

7. Простейшее регулярное выражение

Изменить регулярное выражение в примере для нахождения строк cab, ccab, cccab.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo2 {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("a*b");
        Matcher matcher = pattern.matcher("aaab");
        boolean b = matcher.matches();
        System.out.println(b);
    }
}

Смотрите решение задачи в видео.

Решение на Patreon.

8. Регулярное выражение, описывающее ссылку

Изменить регулярное выражение в примере – пусть reference1.org тоже считается ссылкой.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo3 {
    public static void main(String[] args) {
        System.out.println(test("google.com"));
        System.out.println(test("reference1.ua"));
        System.out.println(test("reference1.org"));
    }

    public static boolean test(String testString) {
        Pattern pattern = Pattern.compile(".+\\.(com|ua|ru)");
        Matcher matcher = pattern.matcher(testString);
        return matcher.matches();
    }
}​

Смотрите решение задачи в видео.

Решение на Patreon.

9. Регулярное выражение для нахождения Java X

Дана строка “Versions: Java  5, Java 6, Java   7, Java 8, Java 12.”  Найти все подстроки "Java X" и распечатать их.

Смотрите решение задачи в видео.

10. Слово с минимальным числом символов

Найти слово, в котором число различных символов минимально. Слово может содержать буквы и цифры. Если таких слов несколько, найти первое из них. Например, в строке "fffff ab f 1234 jkjk" найденное слово должно быть "fffff".

11. Найти количество слов

Предложение состоит из нескольких слов, разделенных пробелами. Например: "One two three раз два три one1 two2 123 ". Найти количество слов, содержащих только символы латинского алфавита.

12. Найти палиндром

Предложение состоит из нескольких слов, например: "Если есть хвосты по дз, начните с 1 не сданного задания. 123 324 111 4554". Среди слов, состоящих только из цифр, найти слово палиндром.

13. Интернет-магазин, часть 3

Часть 1часть 2.

  1. При покупке вывести на консоль отчет о купленных продуктах. Используем форматирование. Например:
    Продукты       Цена
    --------------------------------------
    Джинсы      1500,78 
    Юбка        1000,56 
    Галстук      500,78 
    --------------------------------------
    Итого:      3002,34
    

    Решение на Patreon.

 

При написании программ обращайте внимание на рекомендации по оформлению кода.

Курс 'Java для начинающих' на Udemy Курс 'Java для начинающих' на Udemy
Read also:
Comments
FatBoy
Dec 27, 2022
Задача №3 решил через массив и стринг билдер. Вот Решение(возможно можн сделать проще, но как уж смог) https://www.online-java.com/0CoMDjVPwJ
FatBoy
Jan 16, 2023
Задача №11 https://www.online-java.com/FVu2ELkbpz
FatBoy
Jan 16, 2023
Задача №12 https://www.online-java.com/beTdypux5m