Подскажите пожалуйста почему не проходит по условиям:
1. Нужно, чтобы метод toHex(String) был реализован согласно условию.
2. Нужно, чтобы метод toBinary(String) был реализован согласно условию.
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) {
String hexNumber = "";
if (binaryNumber == null || binaryNumber.equals(""))
return "";
if ((binaryNumber.length() % 4) != 0){
for (int i = 0; i < (binaryNumber.length() % 4); i++)
binaryNumber = "0" + binaryNumber;
}
for (int i = 0; i < binaryNumber.length() - 3;){
String partOfNumber = binaryNumber.substring(i, i + 4);
hexNumber = hexNumber + converter(partOfNumber);
i = i + 4;
}
//напишите тут ваш код
return hexNumber;
}
public static String toBinary(String hexNumber) {
String binaryNumber = "";
if (hexNumber == null || hexNumber.equals(""))
return "";
for (int i = 0; i < hexNumber.length(); i++){
String partOfNumber = hexNumber.substring(i, i + 1);
binaryNumber = binaryNumber + converter(partOfNumber);
}
//напишите тут ваш код
return binaryNumber;
}
public static String converter (String partOfNumber){
String partOfNewNumber = "";
String HEX = "0123456789abcdef";
String a[] = new String [16];
a[0] = "0000";
a[1] = "0001";
a[2] = "0010";
a[3] = "0011";
a[4] = "0100";
a[5] = "0101";
a[6] = "0110";
a[7] = "0111";
a[8] = "1000";
a[9] = "1001";
a[10] = "1010";
a[11] = "1011";
a[12] = "1100";
a[13] = "1101";
a[14] = "1110";
a[15] = "1111";
if (HEX.contains(partOfNumber)){
int i = HEX.indexOf(partOfNumber);
partOfNewNumber = a[i];
return partOfNewNumber;
}else
for (int i = 0; i < 16; i++){
if (a[i].equals(partOfNumber))
partOfNewNumber = partOfNewNumber + HEX.charAt(i);
}
return partOfNewNumber;
}
}