Кучу чисел через методы прогонял, выдает вроде все правильно. Не пойму почему этот валидатор ругается.
package com.javarush.task.pro.task09.task0908;
import java.util.regex.Pattern;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
public static void main(String[] args) {
String binaryNumber = "1";
System.out.println("Двоичное число " + binaryNumber + " равно шестнадцатеричному числу " + toHex(binaryNumber));
String hexNumber = "1";
System.out.println("Шестнадцатеричное число " + hexNumber + " равно двоичному числу " + toBinary(hexNumber));
}
public static String toHex(String binaryNumber) {
if(binaryNumber.equals("") || binaryNumber == null) return "";
for(int i = 0;i < binaryNumber.length();i++){
if(binaryNumber.split("")[i].equals("0") || binaryNumber.split("")[i].equals("1")){
}else{
return "";
}
}
String hexNumber = "";
while(binaryNumber.length() % 4 != 0){
binaryNumber = "0" + binaryNumber;
}
for(int i = 3;i < binaryNumber.length() + 1;i++){
if(i % 4 == 0){
String[] nums = binaryNumber.split("");
hexNumber = hexNumber + getNum(nums[i - 4] + nums[i - 3] + nums[i - 2] + nums[i - 1]);
}
}
return hexNumber;
}
public static String toBinary(String hexNumber) {
if(hexNumber.equals("") || hexNumber == null) return "";
for(int i = 0;i < hexNumber.length();i++){
if(hexNumber.split("")[i].equals("0") ||
hexNumber.split("")[i].equals("1") ||
hexNumber.split("")[i].equals("2") ||
hexNumber.split("")[i].equals("3") ||
hexNumber.split("")[i].equals("4") ||
hexNumber.split("")[i].equals("5") ||
hexNumber.split("")[i].equals("6") ||
hexNumber.split("")[i].equals("7") ||
hexNumber.split("")[i].equals("8") ||
hexNumber.split("")[i].equals("9") ||
hexNumber.split("")[i].equals("a") ||
hexNumber.split("")[i].equals("b") ||
hexNumber.split("")[i].equals("c") ||
hexNumber.split("")[i].equals("d") ||
hexNumber.split("")[i].equals("e") ||
hexNumber.split("")[i].equals("f")){
}else{
return "";
}
}
String binaryNumber = "";
for(int i = 0;i < hexNumber.length();i++){
binaryNumber = binaryNumber + getNum(hexNumber.split("")[i]);
}
return binaryNumber;
}
public static String getNum(String fnum){
if(fnum.equals("0000")) return "0";
if(fnum.equals("0001")) return "1";
if(fnum.equals("0010")) return "2";
if(fnum.equals("0011")) return "3";
if(fnum.equals("0100")) return "4";
if(fnum.equals("0101")) return "5";
if(fnum.equals("0110")) return "6";
if(fnum.equals("0111")) return "7";
if(fnum.equals("1000")) return "8";
if(fnum.equals("1001")) return "9";
if(fnum.equals("1010")) return "a";
if(fnum.equals("1011")) return "b";
if(fnum.equals("1100")) return "c";
if(fnum.equals("1101")) return "d";
if(fnum.equals("1110")) return "e";
if(fnum.equals("1111")) return "f";
//YaPoPolnoyZadolbalsya!!!
if(fnum.equals("0")) return "0000";
if(fnum.equals("1")) return "0001";
if(fnum.equals("2")) return "0010";
if(fnum.equals("3")) return "0011";
if(fnum.equals("4")) return "0100";
if(fnum.equals("5")) return "0101";
if(fnum.equals("6")) return "0110";
if(fnum.equals("7")) return "0111";
if(fnum.equals("8")) return "1000";
if(fnum.equals("9")) return "1001";
if(fnum.equals("a")) return "1010";
if(fnum.equals("b")) return "1011";
if(fnum.equals("c")) return "1100";
if(fnum.equals("d")) return "1101";
if(fnum.equals("e")) return "1110";
if(fnum.equals("f")) return "1111";
//PISEC!!!
return "";
}
}