public static int toDecimal(String binaryNumber) {
if (binaryNumber.isEmpty() || binaryNumber == null) {
return 0;
} else {
int x = 0;
int result = 0;
char numberPlace;
for (int i = 0; i < binaryNumber.length(); i++) {
numberPlace = binaryNumber.charAt(i);
x = Character.getNumericValue(numberPlace);
x = x * (int) Math.pow(2, (binaryNumber.length() - i - 1));
result += x;
}
return result;
}
}
Senya
15 уровень
Второе условие не проходит. Конвертирует метод правильно
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
27 марта, 15:32
Ты бы хоть ради смеху приложил что именно в том условии написано...
Из очевидных ошибок - 2ая строка. Если binaryNumber будет null то твой код упадёт.
Character.getNumericValue() кстати достаточно специфичный метод, и работает не совсем так как ты думаешь :) В данном случае тебе просто повезло.
0
Senya
27 марта, 15:46
Почему же повезло? Я его использовал, тк в строке у меня только "0" или "1" может быть. А с ними этот метод делает то что мне нужно :)
0
Senya
27 марта, 15:47
Я думал подгружается задача:
Публичный статический метод toDecimal(String) должен переводить из строкового представления двоичного числа в десятичное число.
Методы работают только с положительными числами и не пустыми строками.Если входящий параметр — пустая строка или null, то метод toDecimal(String) возвращает 0.
Твоя задача — реализовать эти методы.
Требования:
• Нужно, чтобы метод toBinary(int) был реализован согласно условию.
• Нужно, чтобы метод toDecimal(String) был реализован согласно условию.
0
Денис Enterprise Java Developer
27 марта, 15:48решение
Ну потому что если у тебя будут другие символы у тебя могут возникнуть вопросы по результату ) Тут такие периодически задают.
Что до кода - поменяй местами проверку null и пустой сторки. Если входящий параметр null и ты попытаешься вызвать у него метод (в данном случае isEmpty()) твой код упадёт с NPE.
+2
Senya
27 марта, 16:15
Поэтому и использовал, тк других символов там быть не может.
Спасибо, заработало. Не знал про этот нюанс. 11 попыток на этой строке потратил.
0