Подскажите, пжлст, какое условие не выполнено в методе toBinary(String) ?
package com.javarush.task.pro.task09.task0908;
import java.util.regex.Pattern;
/*
Двоично-шестнадцатеричный конвертер
*/
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) {
//напишите тут ваш код
if (binaryNumber == null || binaryNumber == "") return "";
for (int j = 0; j < binaryNumber.length(); j++){
if (Character.getNumericValue(binaryNumber.charAt(j)) != 0 && Character.getNumericValue(binaryNumber.charAt(j)) != 1) return "";
}
int dec = 0;
String gex = "";
for (int i = 0; i < binaryNumber.length(); i++)
{
dec += (Character.getNumericValue(binaryNumber.charAt(binaryNumber.length()-1-i))) * (int) Math.pow(2,i);
}
while (dec != 0){
gex = HEX.charAt(dec % 16) + gex;
dec = dec / 16;
}return gex;
}
public static String toBinary(String hexNumber) {
//напишите тут ваш код
if (hexNumber != "" && hexNumber != null && hexNumber.matches("[a-f[0-9]]+")) {
int index = 0;
String binary = "";
String finbinary = "";
for (int i = 0; i < hexNumber.length(); i++) {
index = HEX.indexOf(hexNumber.charAt(i));
if (index == 0) finbinary += "0000";
binary = "";
while (index != 0) {
binary = (index % 2) + binary;
index = index / 2;
}
finbinary += binary;
}
return finbinary;
}
return "";
}
}