File tree Expand file tree Collapse file tree 7 files changed +135
-0
lines changed
translations/content/ru/strings Expand file tree Collapse file tree 7 files changed +135
-0
lines changed Original file line number Diff line number Diff line change 1+ title : Символы строки как поток
2+ oldApproach : Ручной цикл
3+ modernApproach : Поток chars()
4+ summary : Обработка символов строки в виде конвейера потока.
5+ explanation : String.chars() возвращает IntStream значений символов, обеспечивая
6+ функциональную обработку. Для поддержки Unicode метод codePoints() корректно
7+ обрабатывает дополнительные символы.
8+ whyModernWins :
9+ - icon : 🔗
10+ title : Цепочки вызовов
11+ desc : Применяйте filter, map, collect к потокам символов.
12+ - icon : 📐
13+ title : Декларативный стиль
14+ desc : Описывает что делать, а не как итерировать.
15+ - icon : 🌐
16+ title : Поддержка Unicode
17+ desc : codePoints() корректно обрабатывает эмодзи и дополнительные символы.
18+ support :
19+ description : Доступно с JDK 8+ (улучшено в 9+)
Original file line number Diff line number Diff line change 1+ title : String.formatted()
2+ oldApproach : String.format()
3+ modernApproach : formatted()
4+ summary : Вызов formatted() непосредственно на строке-шаблоне.
5+ explanation : String.formatted() — это метод экземпляра, аналогичный String.format(),
6+ но вызываемый на строке форматирования. Он читается более естественно в потоке
7+ слева направо.
8+ whyModernWins :
9+ - icon : 📖
10+ title : Естественная читаемость
11+ desc : " Template.formatted(args) воспринимается лучше, чем String.format(template, args)."
12+ - icon : 🔗
13+ title : Цепочки вызовов
14+ desc : Можно объединять в цепочку с другими строковыми методами.
15+ - icon : 📏
16+ title : Меньше кода
17+ desc : Устраняет избыточный статический вызов String.format().
18+ support :
19+ description : Широко доступно с JDK 15 (сентябрь 2020)
Original file line number Diff line number Diff line change 1+ title : String.indent() и transform()
2+ oldApproach : Ручное добавление отступа
3+ modernApproach : indent() / transform()
4+ summary : Добавление отступов к тексту и цепочечное применение строковых преобразований.
5+ explanation : indent(n) добавляет n пробелов к каждой строке. transform(fn) применяет
6+ произвольную функцию и возвращает результат, позволяя выстраивать цепочки
7+ строковых операций.
8+ whyModernWins :
9+ - icon : 📏
10+ title : Встроенный метод
11+ desc : Добавление отступов — частая операция, теперь это один вызов.
12+ - icon : 🔗
13+ title : Цепочки вызовов
14+ desc : transform() позволяет строить цепочки операций над строками.
15+ - icon : 🧹
16+ title : Чистый код
17+ desc : Не нужно вручную разбивать строки и писать циклы с StringBuilder.
18+ support :
19+ description : Широко доступно с JDK 12 (март 2019)
Original file line number Diff line number Diff line change 1+ title : String.isBlank()
2+ oldApproach : trim().isEmpty()
3+ modernApproach : isBlank()
4+ summary : Проверка пустых строк одним вызовом метода.
5+ explanation : isBlank() возвращает true, если строка пуста или содержит только
6+ пробельные символы, включая Unicode-пробелы, которые trim() не учитывает.
7+ whyModernWins :
8+ - icon : 📖
9+ title : Самодокументирующийся
10+ desc : isBlank() точно описывает то, что проверяет.
11+ - icon : 🌐
12+ title : Поддержка Unicode
13+ desc : Обрабатывает все пробельные символы Unicode, а не только ASCII.
14+ - icon : ⚡
15+ title : Без аллокаций
16+ desc : Не создаёт промежуточную обрезанную строку.
17+ support :
18+ description : Широко доступно с JDK 11 (сентябрь 2018)
Original file line number Diff line number Diff line change 1+ title : String.lines() для разбиения на строки
2+ oldApproach : " split(\"\\\\ n\" )"
3+ modernApproach : lines()
4+ summary : Использование String.lines() для разбиения текста на поток строк без
5+ издержек регулярных выражений.
6+ explanation : " String.lines() возвращает Stream<String> строк, разбитых по \\ n,\
7+ \ \\ r или \\ r\\ n. Это ленивее и эффективнее, чем split(), избегает компиляции\
8+ \ регулярных выражений и естественно интегрируется в Stream API для дальнейшей\
9+ \ обработки."
10+ whyModernWins :
11+ - icon : ⚡
12+ title : Ленивый поток
13+ desc : Строки генерируются по запросу, а не все сразу, как в split().
14+ - icon : 🔧
15+ title : Универсальные разделители строк
16+ desc : " Автоматически обрабатывает \\ n, \\ r и \\ r\\ n без регулярных выражений."
17+ - icon : 🔗
18+ title : Интеграция со Stream
19+ desc : Возвращает поток для прямого использования с filter, map, collect.
20+ support :
21+ description : Доступно с JDK 11 (сентябрь 2018).
Original file line number Diff line number Diff line change 1+ title : String.repeat()
2+ oldApproach : Цикл с StringBuilder
3+ modernApproach : repeat()
4+ summary : Повторение строки n раз без цикла.
5+ explanation : " String.repeat(int) возвращает строку, объединённую с собой n раз.\
6+ \ Обрабатывает граничные случаи: repeat(0) возвращает пустую строку, repeat(1)\
7+ \ возвращает ту же строку."
8+ whyModernWins :
9+ - icon : 📏
10+ title : Однострочник
11+ desc : Заменяет 5 строк кода с StringBuilder одним вызовом.
12+ - icon : ⚡
13+ title : Оптимизировано
14+ desc : Внутренняя реализация оптимизирована для большого числа повторений.
15+ - icon : 📖
16+ title : Ясное намерение
17+ desc : repeat(3) сразу передаёт цель.
18+ support :
19+ description : Широко доступно с JDK 11 (сентябрь 2018)
Original file line number Diff line number Diff line change 1+ title : String.strip() vs trim()
2+ oldApproach : trim()
3+ modernApproach : strip()
4+ summary : Unicode-совместимое удаление пробелов с помощью strip(), stripLeading(),
5+ stripTrailing().
6+ explanation : trim() удаляет только символы ≤ U+0020 (управляющие символы ASCII
7+ и пробел). strip() использует Character.isWhitespace(), который обрабатывает
8+ Unicode-пробелы, такие как неразрывный пробел, идеографический пробел и др.
9+ whyModernWins :
10+ - icon : 🌐
11+ title : Корректная работа с Unicode
12+ desc : Обрабатывает все пробельные символы из всех систем письма.
13+ - icon : 🎯
14+ title : Направленность
15+ desc : stripLeading() и stripTrailing() для одностороннего удаления.
16+ - icon : 🛡️
17+ title : Меньше ошибок
18+ desc : Нет неожиданных пробелов в интернациональном тексте.
19+ support :
20+ description : Широко доступно с JDK 11 (сентябрь 2018)
You can’t perform that action at this time.
0 commit comments