JavaRush
AI Academy
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Что-то явно не так в части байтов. Не получается разделит...
Карина
12 уровень
  • 16.11.2021
  • 973просмотров
  • 9комментариев

Что-то явно не так в части байтов. Не получается разделить на 2 (подчеркивает, а еще что-то не то с Byte.toString(). Посмотрите,пожалуйста!!!

Вопрос по задаче А мне так нужно
Java Syntax,  8 уровень,  8 лекция
Решен


Реализуй метод toCustomString, чтобы он преобразовывал Number к String по определенному правилу в зависимости от типа:
- если аргумент является объектом Byte, то разделить его на 2 и преобразовать в строку, добавив в конце букву "b";
- если аргумент является объектом Integer, то разделить его на 3 и преобразовать в строку;
- если аргумент является объектом Double, то умножить его на 20 и преобразовать в строку;
- если аргумент не относится ни к одному из вышеперечисленных типов, то вернуть строку "Я такого типа числа не жду!".

Класс Number является родителем классов Byte, Double, Float, Integer, Long и Short.
Для определения типа используй оператор instanceof.

Требования:
  • Метод toCustomString должен разделить входящий параметр на 2 и добавить в конце букву b, если входящий параметр является объектом Byte.
  • Метод toCustomString должен разделить входящий параметр на 3, если входящий параметр является объектом Integer.
  • Метод toCustomString должен умножить входящий параметр на 20, если входящий параметр является объектом Double.
  • Метод toCustomString должен вернуть строку "Я такого типа числа не жду!", если входящий параметр не Byte, не Integer, и не Double.
  • Для определения типа нужно использовать оператор instanceof.
.....
package com.javarush.task.jdk13.task12.task1205; /* А мне так нужно */ public class Solution { private static String UNEXPECTED_TYPE = "Я такого типа числа не жду!"; public static void main(String[] args) { System.out.println(toCustomString((byte) 12)); System.out.println(toCustomString(12)); System.out.println(toCustomString(12.)); System.out.println(toCustomString(12L)); } public static String toCustomString(Number number) { //напишите тут ваш код if (number instanceof Byte) { Byte b = (Byte) number; return Byte.toString(b)+"b"; } else if (number instanceof Integer) { Integer i = (Integer) number; return Integer.toString(i/3); } else if (number instanceof Double) { Double d = (Double) number; return Double.toString(d*20); } return UNEXPECTED_TYPE; } } // return UNEXPECTED_TYPEring ;
0
Комментарии (9)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
16 ноября 2021, 10:06
Что значит не получается?
0
Карина
Уровень 12
17 ноября 2021, 08:59
красным подчеркивает при попытке разделить на два
0
Карина
Уровень 12
17 ноября 2021, 09:01
я имею в виду у меня что-то не так, потому что я что-то не то навертела..)
0
Ksenia VolkovaJava Developer в DXCMaster
17 ноября 2021, 09:33
Покажи, что именно ты делишь на 2.
0
Карина
Уровень 12
19 ноября 2021, 07:57
21 строка: return Byte.toString(b/2)+"b";
0
Ksenia VolkovaJava Developer в DXCMaster
19 ноября 2021, 08:25
Это потому что при делении операнды будут преобразованы в int, и результат деления тоже будет int. А его нельзя передать в Byte.toString(). Про автоматическое приведение при выполнении операций с числами можно почитать, например, тут (последний раздел).
+1
Карина
Уровень 12
19 ноября 2021, 08:28
Точняк...))Спасибо
0
Карина
Уровень 12
19 ноября 2021, 09:39
Вы мне очень помогли, я прочла статью по вашей ссылке. Решила задачу. Спасибо
0
Anonymous #3283984
Уровень 24
15 мая 2023, 07:52
ничего не понял из статьи, понятно только то что и другая операнта должна быть приведена к такому же типу что и первая тоесть продублировать (byte) (b/2).... тут 2 будет также каститься к типу byte и ошибки не будет
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush