Условия на возврат пустых строк стоит, но не хочет брать их во внимание, что не так, прошу помочь. Заранее спасибо.
package com.javarush.task.pro.task09.task0908;
import java.util.regex.Pattern;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
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) {
//напишите тут ваш код
if (binaryNumber == null || binaryNumber == "")
return "";
int zero = binaryNumber.length() % 4;
String hex = "";
if (zero != 0) {
for (int i = 0; i < zero; i++)
hex += "0";
hex += binaryNumber;
}
else
hex += binaryNumber;
String HexDigs = "0123456789abcdef";
String hexFin = "";
String hexBit = "";
int count = 1;
for (int i = 0; i < hex.length(); i++, count++) {
hexBit += hex.charAt(i);
if (i != 0 && (count % 4) == 0) {
int dec = 0;
int a = 0;
int c;
for (int j = 0; j < hexBit.length(); j++) {
c = hexBit.charAt(hexBit.length() - 1 - j);
if (c == '1' || c == '0') {
if (c == '1')
a = 1;
else
a = 0;
}
else
return "";
dec += a * Math.pow(2, j);
}
hexFin += HexDigs.charAt(dec);
hexBit = "";
}
}
return hexFin;
}
public static String toBinary(String hexNumber) {
//напишите тут ваш код
if (hexNumber == null || hexNumber == "")
return "";
for (int i = 0; i < hexNumber.length(); i++) {
char c = hexNumber.charAt(i);
if ((c <= 48 && c >= 57) || (c <= 'a' && c >= 'f'))
return "";
}
String HexDigs = "0123456789abcdef";
int dec = 0;
for (int i = 0; i < hexNumber.length(); i++) {
char c = hexNumber.charAt(i);
// if ((c <= '0' || c >= '9') && (c <= 'a' || c >= 'f'))
// return "";
int d = HexDigs.indexOf(c);
dec = 16 * dec + d;
}
int bin = 0;
String tmp = "";
for (int i = 0; dec != 0; i++) {
bin = dec % 2;
tmp = bin + tmp;
dec /= 2;
}
return tmp;
}
}