Java Ready | Программирование
8.89K subscribers
1.22K photos
60 videos
1 file
599 links
Авторский канал по разработке на Java.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/java_ready
Download Telegram
Проверка пароля на надёжность!

Надёжный пароль должен содержать буквы разного регистра, цифры и спецсимволы. Java позволяет проверить это с помощью методов matches() и простых условий.

Сохраняем пароль для проверки:
String pwd = "MyPass123!";


Проверяем наличие нужных символов:
boolean hasUpper = pwd.matches(".*[A-Z].*");
boolean hasLower = pwd.matches(".*[a-z].*");
boolean hasDigit = pwd.matches(".*\\d.*");
boolean hasSpec = pwd.matches(".*[!@#$%^&*()].*");


Оцениваем надёжность и выводим результат:
if (pwd.length() >= 8 && hasUpper && hasLower && hasDigit && hasSpec)
System.out.println("Пароль надёжный");
else
System.out.println("Пароль слабый");


🔥 Простой способ быстро проверить ввод перед регистрацией или сохранением.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥125👍4
👩‍💻 Сжатие строки по количеству повторений!

Программа проходит по строке, считает, сколько раз подряд встречается каждый символ, и формирует новую строку с парами "символ-количество".

В этой задаче:
Перебираем символы строки;

Подсчитываем повторы подряд;

Формируем новый результат;


Задача учит работать с базовыми циклами и даёт понимание работы примитивного сжатия текстов.

👉 Java Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84👍4🤝1
👩‍💻 Сжатие строки по количеству повторений!

Программа проходит по строке, считает, сколько раз подряд встречается каждый символ, и формирует новую строку с парами "символ-количество".

В этом посте:
Перебираем символы строки;

Подсчитываем повторы подряд;

Формируем новый результат;


Задача учит работать с базовыми циклами и даёт понимание работы примитивного сжатия текстов.

👉 Java Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍74🤝1
Рендерим страницы в PNG из PDF!

Иногда нужно превратить документ в набор картинок. Java справляется с этим с библиотекой PDFBox которая рендерит страницы в BufferedImage.

Подключаем зависимость (Gradle) для рендера PDF в изображения:
implementation "org.apache.pdfbox:pdfbox:3.0.2"


Открываем PDF и создаём рендерер для страниц:
var pdf = org.apache.pdfbox.pdmodel.PDDocument.load(java.nio.file.Files.readAllBytes(
java.nio.file.Path.of("input.pdf")));
var renderer = new org.apache.pdfbox.rendering.PDFRenderer(pdf);


Рендерим первую страницу с нужным DPI и сохраняем в PNG:
float dpi = 200f;
var img = renderer.renderImageWithDPI(0, dpi);
javax.imageio.ImageIO.write(img, "png", java.nio.file.Path.of("page-1.png").toFile());


Проходим по всем страницам и сохраняем каждую в отдельный файл:
for (int i = 0; i < pdf.getNumberOfPages(); i++) {
var bi = renderer.renderImageWithDPI(i, dpi);
javax.imageio.ImageIO.write(bi, "png", java.nio.file.Path.of("page-" + (i+1) + ".png").toFile());
}
pdf.close();


🔥 Подходит для генерации обложек, поиска по миниатюрам и веб-превью.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥95👍4
👩‍💻 DecimalFormat — инструмент для создания аккуратных и читаемых числовых форматов!

Когда важна подача данных, а не просто их значение, стандартные числа начинают работать против читаемости. Этот класс превращает цифры в понятные пользователю шаблоны.

Он незаменим в отчётности, логировании, интерфейсах и форматировании. Управляя маской, можно быстро адаптировать числовой вывод под требования клиента или дизайн системы.


👉 Java Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍74🤝1
Отправка email прямо из кода!

Java умеет отправлять письма через SMTP без сторонних сервисов с помощью библиотеки javax.mail.

Подключаем зависимость (Maven):
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
<version>2.0.1</version>
</dependency>


Указываем настройки SMTP-сервера:
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");


Создаём сессию с логином и паролем:
Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("you@example.com", "password");
}
});


Готовим письмо:
Message msg = new MimeMessage(session);
msg.setFrom("you@example.com");
msg.setRecipients(Message.RecipientType.TO, "target@example.com");
msg.setSubject("Тестовое письмо");
msg.setText("Привет! Это письмо отправлено из Java.");


Отправляем:
Transport.send(msg);


🔥 Работает с Gmail, Яндексом, корпоративной почтой и любым SMTP.

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍5🔥4