При проверке задания пишет, что метод toHex не реализован согласно условию, все остальные условия выполнены. Не понимаю, в чём проблема, вроде toBinary выполнен аналогично, но программа проверки на него не ругается
package com.javarush.task.pro.task09.task0908;
import java.util.regex.Pattern;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
public static String code = "00102001130100401015011060111710008100191010a1011b1100c1101d1110e1111f";
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 == "" || binaryNumber == null || !Pattern.matches("[0-1]+", binaryNumber))
return "";
String hex = "";
while ((binaryNumber.length() % 4) != 0) {
binaryNumber = binaryNumber + 0;
}
for (int i = 0; i < binaryNumber.length(); i += 4) {
String sub = binaryNumber.substring(i, i + 4);
if (sub.equals("0000"))
sub = "0";
else if (sub.equals("0001"))
sub = "1";
else {
int index = code.indexOf(sub);
sub = code.substring(index + 4, index + 5);
}
hex = hex + sub;
}
return hex;
}
public static String toBinary(String hexNumber) {
if (hexNumber == null || hexNumber == "" || !Pattern.matches("[0-9a-f]+", hexNumber))
return "";
String dub = "";
for (int i = 0; i < hexNumber.length(); i++) {
String sub = hexNumber.substring(i, i + 1);
if (sub.equals("0"))
sub = "0000";
else if (sub.equals("1"))
sub = "0001";
else {
int index = code.indexOf(sub);
sub = code.substring(index - 4, index);
}
dub = dub + sub;
}
return dub;
}
}