Не проходят два первых пунктах, не понимаю, почему, все проверяла, разные моменты, кажется, тоже, не понимаю, в чем причина((
package com.javarush.task.pro.task09.task0908;
import java.util.regex.Pattern;
import java.util.*;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
public static String HEX="0123456789abcdfe";
public static String[] BIN=new String[]{
"0000","0001","0010","0011",
"0100","0101","0110","0111",
"1000","1001","1010","1011",
"1100","1101","1110","1111"
};
public static void main(String[] args) {
String binaryNumber = "00020100";
System.out.println("Двоичное число " + binaryNumber + " равно шестнадцатеричному числу " + toHex(binaryNumber));
String hexNumber = "9d0";
System.out.println("Шестнадцатеричное число " + hexNumber + " равно двоичному числу " + toBinary(hexNumber));
}
public static String toHex(String binaryNumber) {
if(binaryNumber==null || binaryNumber.equals("")) return "";
//напишите тут ваш код
String hexNumber="";
if(binaryNumber.length()%4!=0){
binaryNumber="0".repeat(4-binaryNumber.length()%4)+binaryNumber;
}
for(int i=0;i<binaryNumber.length();i+=4){
boolean isThere=false;
int index=-1;
String current=binaryNumber.substring(i,i+4);
for (int j=0;j<16;++j){
if(current.equals(BIN[j])){
isThere=true;
index=j;
break;
}
}
if(!isThere) return "";
hexNumber=hexNumber+HEX.charAt(index);
}
return hexNumber;
}
public static String toBinary(String hexNumber) {
//напишите тут ваш код
if(hexNumber==null || hexNumber.equals("")) return "";
String binaryNumber="";
for(int i=0;i<hexNumber.length();++i){
if (HEX.indexOf(hexNumber.charAt(i))==-1) return "";
binaryNumber=binaryNumber+BIN[HEX.indexOf(hexNumber.charAt(i))];
}
return binaryNumber;
}
}