Пишет:Убедись, что метод toDecimal(String) возвращает 0, если на вход получает пустую строку или null.
package com.javarush.task.pro.task09.task0906;
import java.util.ArrayList;
import java.util.Arrays;
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 = "";
System.out.println("Двоичное число " + binaryNumber + " равно десятичному числу " + toDecimal(binaryNumber));
}
public static String toBinary(int decimalNumber) {
int i=0;
int decimalNumber1 = decimalNumber;
if(decimalNumber1>0){
while(decimalNumber1!=0)
{
decimalNumber1=decimalNumber1/2;
i++;
}
int[] two_n = new int[i];
i = 0;
while(decimalNumber!=0)
{
two_n[i]=(decimalNumber%2);
decimalNumber=decimalNumber/2;
i++;
}
for (i = 0; i < two_n.length / 2; i++)
{
int tmp = two_n[i];
two_n[i] = two_n[two_n.length - i - 1];
two_n[two_n.length - i - 1] = tmp;
}
return Arrays.toString(two_n).replaceAll("\\[|\\]|,|\\s", "");
}
else return "";
}
public static int toDecimal(String binaryNumber) {
double ten_n=0;
char[] two_m = binaryNumber.toCharArray();
if (binaryNumber == null) return 0;
else{
for (int i = 0; i < two_m.length / 2; i++)
{
char tmp = two_m[i];
two_m[i] = two_m[two_m.length - i - 1];
two_m[two_m.length - i - 1] = tmp;
}
for (int i=0; i< two_m.length; i++ )
{
ten_n = ten_n + two_m[i]*(Math.pow(2,i));
}
return (int)ten_n;
}
}
}