В Идее код работает.
Покурил инфу про ошибку, в javadoc такая инфа:
Пишет что возникает ошибка когда приложение (видимо JVM??) загружает класс через строковое имя и при этой загрузке не может его найти.
Как я понял, JVM пишет "Solution" и в ответ ему почему-то не выдается класс, а такая ошибка (она еще вроде как как исключение throws Exception??).
Подскажите, плиз что может быть.
Я менял только название класса в Идее на Sol. Плюс дополнительно создал массивы final String[] keyArrayBinary и keyArrayHEX.
Что может быть не так?
Спасибо!!
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
public static final String[] keyArrayBinary = {"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001",
"1010", "1011", "1100", "1101", "1110", "1111"};
public static final String[] keyArrayHEX = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
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 hexNumberz = ""; // создаем переменную для вывода результата
String temp = ""; // переменную для промежуточного результата в счетчике
if( binaryNumber == null || binaryNumber.equals("") || binaryNumber.equals(" ")){
return hexNumberz; // если переданная в метод строка содержит нулл, пустую строку или пробел, возрващаем пустую строку (хекснамбер содержит символ переноса строки)
}
String tempZero = "0";
while(binaryNumber.length() % 4 > 0){
binaryNumber = tempZero + binaryNumber; // в этом цикле добавляем нули в полученную строку до тех пор, пока она не будет кратна 4
}
String[] tempCroppArray = new String[binaryNumber.length() / 4]; // массив в котором хранится порезанная строка на куски по 4 которую метод принял. Нужен чтобы дальше сравниввать эти элементы с с элементами массива и возвращать двоичные числа
int ll = 0;
for(int i = 0; i < binaryNumber.length() / 4; i++){
tempCroppArray[i] = binaryNumber.substring(ll, ll+4);
ll = ll+4;
}
for(int i = 0; i < binaryNumber.length() / 4; i++){
String fuckstrochka = "";
String majorTemp = tempCroppArray[i];
for(int j = 0; j < 16; j++){
temp = keyArrayBinary[j];
fuckstrochka = keyArrayHEX[j];
if(majorTemp.equals(temp)) {
hexNumberz = hexNumberz + fuckstrochka;}
}
}
return hexNumberz;
}
public static String toBinary(String hexNumber) {
String binaryNumber = ""; // создаем переменную для вывода результата
String temp = ""; // переменную для промежуточного результата в счетчике
if (hexNumber == null || hexNumber.equals("") || hexNumber.equals(" ")) {
return binaryNumber; // если переданная в метод строка содержит нулл, пустую строку или пробел, возрващаем пустую строку (хекснамбер содержит символ переноса строки)
}
String[] tempHexNumber = new String[hexNumber.length()];
String fuckstrochka = "";
String forHexNum = "";
for (int i = 0; i < tempHexNumber.length; i++) {
tempHexNumber[i] = hexNumber.substring(i, i+1);
for (int j = 0; j < keyArrayHEX.length; j++) {
forHexNum = tempHexNumber[i];
temp = keyArrayHEX[j];
fuckstrochka = keyArrayBinary[j];
if (forHexNum.equals(temp)){
binaryNumber = binaryNumber + fuckstrochka;
}
}
}
return binaryNumber;
}
}