Подскажите, что не так. считает правильно, но задача не засчитывается
package com.javarush.task.pro.task09.task0908;
import java.util.regex.Pattern;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
public static final String HEX = "0123456789abcdf";
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.isEmpty())
return "";
else {
for(int i=0; i<binaryNumber.length(); i++) {
if (binaryNumber.charAt(i) != '0' && binaryNumber.charAt(i) != '1' )
return ""; }
}
String hexNumber = "" ;
while ( binaryNumber.length() % 4 != 0)
binaryNumber = "0" + binaryNumber;
for (int i=0; i<(binaryNumber.length()-3) ; i=i+4) {
String four = binaryNumber.substring(i, i+4);
int decimalNumber =0;
String z ="";
for (int j=0; j<four.length(); j++){
int x = Integer.parseInt(four.substring(j, j+1));
decimalNumber = decimalNumber + x* (int) Math.pow(2, four.length()-1-j); }
z = HEX.substring (decimalNumber,decimalNumber+1);
hexNumber =hexNumber+z;
}
return hexNumber;
}
public static String toBinary(String hexNumber) {
//напишите тут ваш код
String binaryNumber = "";
if (hexNumber==null || hexNumber.isEmpty()) return "";
for (int i=0; i<hexNumber.length(); i++) {
String binaryNumber1 = "";
if (HEX.indexOf(hexNumber.substring(i, i+1)) < 0 ) return "";
else if (HEX.indexOf(hexNumber.substring(i, i+1)) == 0 ) binaryNumber1 = "0000";
int decimalNumber = HEX.indexOf(hexNumber.substring(i, i+1)) ;
while( decimalNumber != 0) {
binaryNumber1 = decimalNumber % 2 + binaryNumber1;
decimalNumber = decimalNumber / 2;
}
binaryNumber = binaryNumber + binaryNumber1 ;
}
return binaryNumber;
}
}
Integer.parseInt(String)