Валидатор выдаёт:
Убедись, что метод toDecimal(String) возвращает 0, если на вход получает пустую строку или null.
Хотя пробовал передавать в toDecimal и "" и null. Что не так?package com.javarush.task.pro.task09.task0906;
import java.util.regex.Pattern;
/*
Двоичный конвертер
*/
public class Solution {
public static void main(String[] args) {
int decimalNumber = Integer.MAX_VALUE;
System.out.println("Десятичное число " + decimalNumber + " равно двоичному числу " + toBinary(decimalNumber));
String binaryNumber = "1111111111111111111111111111111";
System.out.println("Двоичное число " + binaryNumber + " равно десятичному числу " + toDecimal(binaryNumber));
}
public static String toBinary(int decimalNumber) {
//напишите тут ваш код
int powerDec = 0;
String binDigitStr = new String("");
int[] binDigitArr = new int[64];
int buf1 = decimalNumber;
int buf2 = decimalNumber;
if (decimalNumber <= 0) {
binDigitStr = "";
}
else {
while (buf1 > 0) {
buf2 = buf1 % 2;
buf1 = buf1 / 2;
binDigitArr[powerDec] = buf2;
binDigitStr = binDigitArr[powerDec] + binDigitStr;
powerDec++;
}
}
return binDigitStr;
}
public static int toDecimal(String binaryNumber) {
//напишите тут ваш код
int[] binDigitArr = new int[binaryNumber.length()];
for (int i=0; i<binaryNumber.length(); i++) {
binDigitArr[i] = Integer.parseInt(binaryNumber.substring((i), (i + 1)));
}
int powerBin = 0;
int decimalNumber = 0;
if (binaryNumber.equals(null) | binaryNumber == "") {
decimalNumber = 0;
}
else {
for (int i=binDigitArr.length; i>0; i--){
decimalNumber = decimalNumber + binDigitArr[i - 1] * ((int) Math.pow(2, powerBin));
powerBin++;
}
}
return decimalNumber;
}
}