Код компилируется, дает вроде бы правильные ответы, но идет замечание "Не выполнены все условия в методе toBinary"
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.equals("")){
return "";
} else {
for (int i=0; i<binaryNumber.length(); i++){
if (binaryNumber.charAt(i)!='1'){
if (binaryNumber.charAt(i)!='0'){
return "";
}
}
}
if (binaryNumber.length()%4!=0){
for (int i=0; i<binaryNumber.length()%4; i++){
binaryNumber = "0"+binaryNumber;
}
}
String HEX = "0123456789abcdef";
String tmp;
int temp = 0;
String result = "";
for (int i=0;i<binaryNumber.length();i+=4){
tmp = binaryNumber.substring(i,i+4);
for (int j = 0;j<4; j++){
if (tmp.charAt(3-j)!='0') temp = temp + (int)Math.pow(2,j);
}
result = result + HEX.charAt(temp);
temp = 0;
}
return result;
}
}
public static String toBinary(String hexNumber) {
//напишите тут ваш код
if (hexNumber==null || hexNumber.equals("")){
return "";
} else{
String HEX = "0123456789abcdef";
hexNumber = hexNumber.toLowerCase();
for (int i=0; i<hexNumber.length(); i++){
if (HEX.indexOf(hexNumber.charAt(i))==-1){
return "";
}
}
String result = "";
char tmp;
int temp = 0;
for (int i=0; i<hexNumber.length(); i++){
tmp = hexNumber.charAt(i);
temp = HEX.indexOf(tmp);
String res = "";
if (temp==0){
res = "0000";
} else {while (temp!=0){
if (temp%2 == 1){
res = "1"+res;
}else{
res = "0"+res;
}
temp = (int)(temp/2);
}
}
result = result + res;
}
return result;
}
}
}