Не проходит валидацию по второму пункту.
Нужно, чтобы метод toBinary(String) был реализован согласно условию.
package com.javarush.task.pro.task09.task0908;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
private static final String HEX = "0123456789abcdef";
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) {
StringBuilder hexNumber = new StringBuilder();
if (binaryNumber == null || binaryNumber.equals("")) {
return hexNumber.toString();
}
while (binaryNumber.length()%4!=0){
binaryNumber = "0"+binaryNumber;
}
for (int i = 0; i < binaryNumber.length(); i += 4) {
String temp = "";
temp = temp + binaryNumber.charAt(i) + binaryNumber.charAt(i + 1) + binaryNumber.charAt(i + 2) + binaryNumber.charAt(i + 3);
int decimalNumber = 0;
for (int j = 0; j < temp.length(); j++) {
if (temp.charAt(j) != '1' && temp.charAt(j) != '0') {
return "";
}
if (temp.charAt(temp.length() - 1 - j) == '1') {
decimalNumber = decimalNumber + (int) Math.pow(2, j);
}
}
if (decimalNumber == 0) {
hexNumber.append("0");
} else {
hexNumber.append(HEX.charAt(decimalNumber % 16));
}
}
return hexNumber.toString();
}
public static String toBinary(String hexNumber) {
int decimalNumber = 0;
StringBuilder binaryNumber = new StringBuilder();
if (hexNumber == null || hexNumber.equals("")) {
return binaryNumber.toString();
}
for (int i = 0; i < hexNumber.length(); i++) {
if (( (int)hexNumber.charAt(i) > 57 || (int)hexNumber.charAt(i)<48) && ((int)hexNumber.charAt(i) > 102 ||(int)hexNumber.charAt(i) < 97)){
return "";
}
decimalNumber = 16 * decimalNumber + HEX.indexOf(hexNumber.charAt(i));
}
while (decimalNumber != 0) {
binaryNumber.insert(0, decimalNumber % 2);
decimalNumber = decimalNumber / 2;
}
return binaryNumber.toString();
}
}