Java Interview Tasks
4.51K subscribers
207 photos
1 video
1 file
138 links
Реальные вопросы и задачи с собеседований.
Оригинальный авторский контент.
Актуальный материал.
Уровень вопросов от junior до supersenior.

Автор канала - @alexzelentsov

По рекламе: @alexzelentsov и https://telega.in/c/java_interview_tasks
Download Telegram
🔍 Ответ на задачу про методы isNumeric и isParsable из Apache Commons Lang 😎

В этом примере используются два метода для проверки, можно ли строку интерпретировать как число:

StringUtils.isNumeric(cs) — проверяет, состоит ли строка cs только из цифр (например, "12345" → true, "12a45" → false, "-123" → false, "12.34" → false).
NumberUtils.isParsable(cs) — проверяет, может ли строка быть разобрана в виде числа (учитываются знаки "-" и ".", десятичные числа: "12.34", "-12").
Поэтому:

 String cs = "123.45";
boolean numeric = StringUtils.isNumeric(cs); // false
System.out.println(numeric);
boolean parsable = NumberUtils.isParsable(cs); // true
System.out.println(parsable);


Вывод:

Используйте isNumeric, если нужно проверить, что строка состоит только из цифр.
Используйте isParsable, если хотите узнать, можно ли строку преобразовать в число любого формата (целое, десятичное, экспоненциальное и т.д.).

👍 Если было полезно — поставь лайк, подпишись и напиши в комментариях, какие ещё методы сравнить!
#java #apachecommons #isnumeric #isparsable #java_interview_tasks
👍1443
🔍 Ответ на задачу про LocalDate и DateTimeFormatter: Вечная путаница с YYYY и yyyy 😅

Очень часто даже опытные разработчики путают, как правильно форматировать и парсить даты в Java с помощью DateTimeFormatter.

Задача:
Есть дата 2024-01-01. Нужно вывести номер года в формате YYYY-MM-dd. В чём разница между использованием шаблона YYYY-MM-dd и yyyy-MM-dd для форматирования, и какой год они покажут, если дата — это, например, 2022-01-01?

Объяснение:

yyyy — календарный год (Calendar year), т.е. то, что мы обычно считаем годом.
YYYY — год недели (Week-based year) по стандарту ISO-8601:
Первый четверг года определяет первую неделю.
Иногда первые дни января могут относиться к заключительной неделе предыдущего года!
Поэтому:
LocalDate date = LocalDate.of(2022, 1, 1);
DateTimeFormatter fmtYear = DateTimeFormatter.ofPattern("yyyy-MM-dd");
DateTimeFormatter fmtWeekYear = DateTimeFormatter.ofPattern("YYYY-MM-dd");

System.out.println(date.format(fmtYear)); // 2022-01-01
System.out.println(date.format(fmtWeekYear)); // 2021-01-01 !!!


Вывод:
date.format(fmtYear) даст ожидаемый результат 2022-01-01.
А вот date.format(fmtWeekYear) может дать 2021-01-01, потому что 1 января 2022 года относится к последней неделе 2021 года по ISO-8601!
⚡️ Не перепутайте:

Используйте yyyy, если нужен календарный год!
Используйте YYYY, если нужен "год недели" (например, если работа связана с бизнес-отчётами по неделям).

Понравился разбор? Ставь ❤️, подписывайся и спрашивай про другие подводные камни работы с датами!
#java #localdate #datetimeformatter #yyyy #YYYY #дата #интервью #java_interview_tasks
3👍1654🤔1