Всем привет, что в голову лезло так и написал, подскажите, почему такой вариант не проходит решение, укажите, что неправильного здесь есть.
package com.javarush.task.pro.task09.task0908;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
public static final String[] BINARY_NUMBER = {"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"};
public static final String[] BUKVI = {"a", "b", "c", "d", "e", "f"};
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 hexNumber = "";
Pattern pattern = Pattern.compile("[2-9,a-z]");
Matcher matcher = pattern.matcher(binaryNumber);
if (binaryNumber == "" || binaryNumber == null || matcher.find()) {
return "";
} else {
while (true) {
String secondHexNumber = "";
if (binaryNumber.length() % 4 == 0) {
for (int i = 0; i < binaryNumber.length(); i = i + 4) {
String bit = binaryNumber.substring(i, i + 4);
for (int j = 0; j < BINARY_NUMBER.length; j++) {
if (bit.equals(BINARY_NUMBER[j])) {
if (j >= 10) {
hexNumber = hexNumber + BUKVI[j - 10];
break;
}
hexNumber = hexNumber + String.valueOf(j);
}
}
}
break;
}
binaryNumber = "0" + binaryNumber;
}
return hexNumber;
}
}
public static String toBinary(String hexNumber) {
//напишите тут ваш код
String binaryNumber = "";
Pattern pattern = Pattern.compile("[g-z]");
Matcher matcher = pattern.matcher(hexNumber);
if (hexNumber == "" || hexNumber == null || matcher.find()) {
return "";
}else{
for (int i = 0; i < hexNumber.length(); i++) {
binaryNumber = binaryNumber + BINARY_NUMBER[Character.getNumericValue(hexNumber.charAt(i))];
}
return binaryNumber;
}
}
}