Программа выводит всё правильно, но почему то не проходит первое условие "Нужно, чтобы метод toHex(String) был реализован согласно условию."
package com.javarush.task.pro.task09.task0908;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
public static char[] hexes = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
public static String[] bins = {"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 buf = "";
String hex = "";
if (binaryNumber != null && binaryNumber.matches("[0-1]+")) {
if (binaryNumber.length() % 4 != 0) {
for (int i = 0; i < binaryNumber.length() % 4; i++) {
binaryNumber += 0;
}
}
for (int i = 0; i < binaryNumber.length(); i += 4) {
for (int j = i; j < i+4; j++) {
buf += Character.getNumericValue(binaryNumber.charAt(j));
}
for (int k = 0; k < 15; k++){
if(buf.equals(bins[k])){
hex += hexes[k];
}
}
buf = "";
}
return hex;
}
return "";
}
public static String toBinary (String hexNumber){
String bin = "";
if (hexNumber != null && hexNumber.matches("[0-9a-f]+")) {
for(int i = 0; i < hexNumber.length(); i++){
for(int j = 0; j < 16; j++){
if ((hexNumber.charAt(i)) == (hexes[j])){
bin += bins[j];
}
}
}
return bin;
} else return "";
}
}