Помогите разобраться, пожалуйста, что не нравится валидатору.
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) {
String hexNumber = "";
if (binaryNumber == null)
return hexNumber;
for (int i = 0; i < binaryNumber.length(); i++) {
if ((binaryNumber.charAt(i) == '0') || (binaryNumber.charAt(i) == '1'))
continue;
else
return hexNumber;
}
while (binaryNumber.length() % 4 != 0)
binaryNumber = 0 + binaryNumber;
int count = 0;
for (int i = 0; i < binaryNumber.length() / 4; i++) {
int decimalNumber = 0;
for (int j = 0; j < 4; j++) {
count++;
int index = binaryNumber.length() - count;
int value = Character.getNumericValue(binaryNumber.charAt(index));
decimalNumber += value * Math.pow(2, j);
}
hexNumber = HEX.charAt(decimalNumber) + hexNumber;
}
return hexNumber;
}
public static String toBinary(String hexNumber) {
String binaryNumber = "";
String finBinaryNumber = "";
if (hexNumber == null)
return binaryNumber;
for (int i = 0; i < hexNumber.length(); i++) {
if ((hexNumber.charAt(i) == '0') || (hexNumber.charAt(i) == '1')
|| (hexNumber.charAt(i) == '2') || (hexNumber.charAt(i) == '3')
|| (hexNumber.charAt(i) == '4') || (hexNumber.charAt(i) == '5')
|| (hexNumber.charAt(i) == '6') || (hexNumber.charAt(i) == '7')
|| (hexNumber.charAt(i) == '8') || (hexNumber.charAt(i) == '9')
|| (hexNumber.charAt(i) == 'a') || (hexNumber.charAt(i) == 'b')
|| (hexNumber.charAt(i) == 'c') || (hexNumber.charAt(i) == 'd')
|| (hexNumber.charAt(i) == 'e') || (hexNumber.charAt(i) == 'f'))
continue;
else
return binaryNumber;
}
int decimalNumber;
for (int i = 0; i < hexNumber.length(); i++) {
decimalNumber = HEX.indexOf(hexNumber.charAt(i));
if (decimalNumber == 0) {
finBinaryNumber = finBinaryNumber + "0000";
}
binaryNumber = "";
while (decimalNumber != 0) {
binaryNumber = decimalNumber % 2 + binaryNumber;
decimalNumber = decimalNumber / 2;
}
finBinaryNumber = finBinaryNumber + binaryNumber;
}
return finBinaryNumber;
}
}