Добрый день. Подскажите, не принимает решение. Пишет: "Убедись что п случае если входной параметр null, методы возвращают пустую строку. А у меня вот так:
String hex = "";
if (binaryNumber == null) {
return hex;
Что может быть не так?
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 = "";
boolean test = true;
for (int i = 0; i < binaryNumber.length(); i++) {
if (binaryNumber.charAt(i) == '0' || binaryNumber.charAt(i) == '1')
;
else
test = false;
break;
}
if (binaryNumber == null) {
return "";
}
else if (binaryNumber.isEmpty()) {
return "";
} else if (!test) {
return "";
} else {
while (true) {
if (binaryNumber.length() % 4 == 0) {
break;
} else {
binaryNumber = "0" + binaryNumber;
}
}
for (int i = 0; i < binaryNumber.length() / 4; i++) {
String fourNumber = binaryNumber.substring((0 + i * 4), (4 + i * 4));
switch (fourNumber) {
case "0000":
hex = hex + "0";
break;
case "0001":
hex = hex + "1";
break;
case "0010":
hex = hex + "2";
break;
case "0011":
hex = hex + "3";
break;
case "0100":
hex = hex + "4";
break;
case "0101":
hex = hex + "5";
break;
case "0110":
hex = hex + "6";
break;
case "0111":
hex = hex + "7";
break;
case "1000":
hex = hex + "8";
break;
case "1001":
hex = hex + "9";
break;
case "1010":
hex = hex + "a";
break;
case "1011":
hex = hex + "b";
break;
case "1100":
hex = hex + "c";
break;
case "1101":
hex = hex + "d";
break;
case "1110":
hex = hex + "e";
break;
case "1111":
hex = hex + "f";
break;
}
}
return hex;
}
}
public static String toBinary(String hexNumber) {
//напишите тут ваш код
String bin = "";
boolean test = true;
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'
)
;
else
test = false;
break;
}
if(hexNumber==null) {
return "";
}
else if (hexNumber.isEmpty()){
return "";
}
else if (!test){
return "";
}
else {
for (int i = 0; i < hexNumber.length(); i++) {
switch (hexNumber.charAt(i)) {
case '0':
bin = bin + "0000";
break;
case '1':
bin = bin + "0001";
break;
case '2':
bin = bin + "0010";
break;
case '3':
bin = bin + "0011";
break;
case '4':
bin = bin + "0100";
break;
case '5':
bin = bin + "0101";
break;
case '6':
bin = bin + "0110";
break;
case '7':
bin = bin + "0111";
break;
case '8':
bin = bin + "1000";
break;
case '9':
bin = bin + "1001";
break;
case 'a':
bin = bin + "1010";
break;
case 'b':
bin = bin + "1011";
break;
case 'c':
bin = bin + "1100";
break;
case 'd':
bin = bin + "1101";
break;
case 'e':
bin = bin + "1110";
break;
case 'f':
bin = bin + "1111";
break;
}
}
return bin;
}
}
}