не проходит второй метод, не могу понять проблема в проверка или в логике перевода
package com.javarush.task.pro.task09.task0908;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
public 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) {
//напишите тут ваш код
String hex = "";
int dec2 = 0;
// проверка
if (binaryNumber == null || binaryNumber == "") {
return "";
}
// проверка
for (int i = 0; i < binaryNumber.length(); i++) {
if ((binaryNumber.charAt(i) != '0') && (binaryNumber.charAt(i) != '1')) {
return "";
}
}
for (int i = 0; i < binaryNumber.length(); i++) {
dec2 = (int) (dec2 + Character.getNumericValue(binaryNumber.charAt(i)) * Math.pow(2, binaryNumber.length() - 1 - i));
// 0 = 0+1*0 = 1=step 1
// 1 = 1+0*0 = 1=step 2
// 2 = 0
}
while (dec2 != 0) {
hex = HEX.charAt(dec2 % 16) + hex;
dec2 = dec2 / 16;
}
return hex;
}
public static String toBinary(String hexNumber) {
//напишите тут ваш код
String binary = "";
int decimalNumber = 0;
if (hexNumber == "" || hexNumber == null) {
return "";
}
if (hexNumber.matches(HEX)) {
return "";
}
for (int i = 0; i < hexNumber.length(); i++) {
decimalNumber = 16 * decimalNumber + HEX.indexOf(hexNumber.charAt(i));
}
while (decimalNumber != 0) {
binary = decimalNumber % 2 + binary;
decimalNumber = decimalNumber / 2;
}
return binary;
}
}