По какой причине программа не принимает первое условие? Я сделал проверку на различных вариантах с разными символами и всё работало, но здесь почему-то проверка не приходится.. 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 hex = ""; if (binaryNumber == null) return hex; String HEX = "0123456789abcdef"; String[] BINARY = {"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"}; int binaryLen = binaryNumber.length(); for (int i = 0; i < binaryLen % 4; i++){ binaryNumber = "0" + binaryNumber; } binaryLen = binaryNumber.length(); String bin = ""; for (int i = 0; i < binaryLen; i++){ int z = Character.getNumericValue(binaryNumber.charAt(i)); if (z != 0 && z != 1) { hex = ""; break; } bin = bin + ("" + z); int y = 0; if (bin.length() == 4){ while (!bin.equals(BINARY[y])){ y += 1; } bin = ""; hex += HEX.charAt(y); } } return hex; } public static String toBinary(String hexNumber) { String binary = ""; if (hexNumber == null) return binary; String HEX = "0123456789abcdef"; String[] BINARY = {"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"}; int hexLen = hexNumber.length(); for (int i = 0; i < hexLen; i++){ int x = 0; while (x < 16 && hexNumber.charAt(i) != HEX.charAt(x)) x += 1; if (x >= 16) return ""; binary += BINARY[x]; } return binary; } }