🔍 Ответ на задачу про BigDecimal: equals vs compareTo ⚖️
-
-
Вывод:
⚡️ Не перепутайте:
Для проверки равенства денежных сумм почти всегда нужно использовать
#java #bigdecimal #math #finance #интервью #java_interview_tasks
-
equals() у BigDecimal сравнивает не только значение, но и scale (точность/количество знаков после запятой). Так как у "1.0" scale=1, а у "1.00" scale=2, они не равны.-
compareTo() сравнивает только математические значения. 1.0 и 1.00 математически равны.Вывод:
equals вернет false, а compareTo вернет true.⚡️ Не перепутайте:
Для проверки равенства денежных сумм почти всегда нужно использовать
compareTo() == 0.#java #bigdecimal #math #finance #интервью #java_interview_tasks
👍6🔥3👏1
🔍 Ответ на задачу про String.contains: Ловушка экранирования 🪤
Часто при переходе от регулярных выражений к обычным строковым методам в Java возникает путаница с экранированием.
Многие методы в Java (например,
Однако метод
В данном примере:
-
- Метод
- В строке
Вывод:
Результат будет
⚡️ Не перепутайте:
- Методы
- Методы
#java #string #contains #regex #backslash #интервью #java_interview_tasks
Часто при переходе от регулярных выражений к обычным строковым методам в Java возникает путаница с экранированием.
Многие методы в Java (например,
split, replaceAll) принимают регулярные выражения. В regex символ | (pipe) является специальным (логическое ИЛИ) и требует экранирования — \|.Однако метод
String.contains(CharSequence s) ищет буквальное совпадение подстроки.В данном примере:
-
MULTIPLE_VALUES_SPLITTER инициализируется строкой \| (обратный слеш и вертикальная черта).- Метод
contains честно ищет эти два символа подряд.- В строке
"apple|orange|banana" есть только символ |, но нет символа \.Вывод:
Результат будет
false. Для корректной проверки наличия разделителя в данном случае нужно использовать val.contains("|").⚡️ Не перепутайте:
- Методы
contains, indexOf, replace работают с литералами.- Методы
split, replaceAll, matches работают с регулярными выражениями.#java #string #contains #regex #backslash #интервью #java_interview_tasks
👍8❤1🔥1