Администрация сайта, расскажите что не так в задаче и почему не проходит тесты? А именно пишет "Нужно, чтобы метод toHex(String) был реализован согласно условию." НО все условия полностью выполняются.
package com.javarush.task.pro.task09.task0908;
import java.util.Arrays;
import java.util.regex.Pattern;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
private static final String HEX = "0123456789abcdef";
private static final String[] binary = 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 = "100111010000";
System.out.println("Двоичное число " + binaryNumber + " равно шестнадцатеричному числу " + toHex(binaryNumber));
String hexNumber = "9d0";
System.out.println("Шестнадцатеричное число " + hexNumber + " равно двоичному числу " + toBinary(hexNumber));
}
public static String toHex(String binaryNumber) {
String Hexadecimal = "";
if(binaryNumber == null){
return Hexadecimal;
}
for(int i = 0; i<binaryNumber.length(); i++){
char simbol = binaryNumber.charAt(i);
if (!(simbol == '0' || simbol == '1')) {
return Hexadecimal;
}
}
if(binaryNumber.length() % 4 != 0){
for (int i = 0; i<binaryNumber.length() % 4; i++){
binaryNumber = "0" + binaryNumber;
}
}
int i;
int j = 4;
for(i = 0; i<binaryNumber.length();) {
String discharge = binaryNumber.substring(i, j);
for(int k=0; i<binary.length; k++){
if(binary[k].equals(discharge)){
Hexadecimal = Hexadecimal + HEX.charAt(k);
break;
}
}
i += 4;
j += 4;
}
return Hexadecimal;
}
public static String toBinary(String hexNumber) {
String bin = "";
if(hexNumber == null){
return bin;
}
for(int i = 0; i<hexNumber.length();i++){
int check = HEX.indexOf(hexNumber.charAt(i));
if(check == -1){
return bin;
}
}
for(int i = 0; i<hexNumber.length(); i++) {
int index = HEX.indexOf(hexNumber.charAt(i));
bin = bin + binary[index];
}
return bin;
}
}