Задача не проходит тестирование, говорит:
Нужно, чтобы метод toHex(String) был реализован согласно условию.
Вроде как все работает и ошибок нет, не пойму в чем проблема.
package com.javarush.task.pro.task09.task0908;
/*
Двоично-шестнадцатеричный конвертер
*/
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) {
String binaryNumber = "100111010000";
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("") || !Pattern.matches("[01]+", binaryNumber))
return "";
String hn = "";
String[] array = {"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"};
String HEX = "0123456789abcdef";
for (int i = 0; i < binaryNumber.length(); i += 4) {
String bn = binaryNumber.substring(i, i + 4);
for (int j = 0; j < HEX.length(); j++) {
if (bn.equals(array[j])) {
hn = hn + HEX.charAt(j);
break;
} else if (j == HEX.length() - 1)
return "";
}
}
return hn;
}
public static String toBinary(String hexNumber) {
//напишите тут ваш код
if (hexNumber == null || hexNumber.equals(""))
return "";
String bn = "";
String HEX = "0123456789abcdef";
String[] array = {"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"};
for (int i = 0; i < hexNumber.length(); i++) {
for (int j = 0; j < HEX.length(); j++)
if (hexNumber.charAt(i) == HEX.charAt(j)) {
bn = bn + array[j];
break;
} else if (j == HEX.length() - 1)
return "";
}
return bn;
}
}