Не проходит первое условие ,на null проверил ,на символы ,кроме 0-1 тоже, добавляет нули в конце до %4=0 тоже , считает верно ,в чем может быть проблема?
package com.javarush.task.pro.task09.task0908;
import java.util.regex.Pattern;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
private static final String[] HEX = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
private static final String[] BINARY = {"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"};
public static void main(String[] args) {
String binaryNumber = "1110";
System.out.println("Двоичное число " + binaryNumber + " равно шестнадцатеричному числу " + toHex(binaryNumber));
String hexNumber = "9d8";
System.out.println("Шестнадцатеричное число " + hexNumber + " равно двоичному числу " + toBinary(hexNumber));
}
public static String toHex(String binaryNumber) {
if (binaryNumber==null || !binaryNumber.matches("[0-1]+"))
return "";
int n =4;
String sub ="";
String result="";
while (binaryNumber.length()%4!=0){
binaryNumber = binaryNumber+"0";
}
for (int i=0;i<binaryNumber.length();i+=4) {
for (int j = 0; j < BINARY.length; j++) {
sub = binaryNumber.substring(i, n + i);
if (sub.equals(BINARY[j])){
result = result + HEX[j];
}
}
}
return result;
}
public static String toBinary(String hexNumber) {
if (hexNumber == null || !hexNumber.matches("[0-9a-f]+"))
return "";
String sub,result = "";
for (int j = 0; j < hexNumber.length(); j++) {
sub = hexNumber.substring(j,j+1);
for (int i = 0; i < HEX.length; i++) {
if (sub.equals(HEX[i])){
result = result + BINARY[i];
}
}
}
return result;
}
}