Здравствуйте.
Не проходит проверку.
Рекомендации от ментора:
Нужно, чтобы метод toHex(String) был реализован согласно условию.
Нужно, чтобы метод toBinary(String) был реализован согласно условию.
package com.javarush.task.pro.task09.task0908;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Scanner;
import java.util.regex.Pattern;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
static List<String> strings = new ArrayList<>();
static List<String> strings1 = new ArrayList<>();
static String [] BIN = {"0000", "0001", "0010","0011", "0100","0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110","1111"};
static String [] HEX = {"0", "1", "2","3", "4","5", "6", "7", "8", "9", "a", "b", "c", "d", "e","f"};
static String hex = "0123456789abcdef";
public static void main(String[] args) {
String binaryNumber = "101";
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 {
Scanner scanner = new Scanner(binaryNumber);
String validationResult = scanner.findInLine("[^01]");
if (validationResult != null){
return "";
} else {
StringBuilder temp = new StringBuilder();
if (binaryNumber.length() % 4 == 0) {
int index = 0;
while (index < binaryNumber.length()) {
strings.add(binaryNumber.substring(index, Math.min(index + 4,binaryNumber.length())));
index += 4;
}
for (int i = 0; i < strings.size(); i++) {
for (int j = 0; j < BIN.length; j++) {
if (strings.get(i).equals(BIN[j])){
temp.append(HEX[j]);
}
}
} return temp.toString();
} else {
StringBuilder binaryNumberBuilder = new StringBuilder(binaryNumber);
while (binaryNumberBuilder.length() % 4 != 0) {
binaryNumberBuilder.insert(0, "0");
}
binaryNumber = binaryNumberBuilder.toString();
int index = 0;
while (index < binaryNumber.length()) {
strings.add(binaryNumber.substring(index, Math.min(index + 4,binaryNumber.length())));
index += 4;
}
for (int i = 0; i < strings.size(); i++) {
for (int j = 0; j < BIN.length; j++) {
if (strings.get(i).equals(BIN[j])){
temp.append(HEX[j]);
}
}
} return temp.toString();
}
}
}
}
public static String toBinary(String hexNumber) {
if (hexNumber == null || hexNumber.equals(""))
return ""; else {
Scanner scanner = new Scanner(hexNumber);
String validationResult = scanner.findInLine("[^0123456789abcdef]");
if (validationResult != null){
return "";
} else {
StringBuilder tempus = new StringBuilder();
int index = 0;
while (index < hexNumber.length()) {
strings1.add(hexNumber.substring(index, Math.min(index + 1,hexNumber.length())));
index += 1;
}
for (int i = 0; i < hexNumber.length(); i++) {
for (int j = 0; j < HEX.length; j++) {
if (Objects.equals(strings1.get(i), HEX[j])){
tempus.append(BIN[j]);
}
}
} return tempus.toString();
}
}
}
}