i checked and have the right answer even check with negative number but still fail with an unclear feedback "you need to implement it right"?
package com.codegym.task.task30.task3001;
/*
Numeral system converter
*/
public class Solution {
public static void main(String[] args) {
Number number = new Number(NumberSystemType._10, "6");
Number result = convertNumberToOtherNumberSystem(number, NumberSystemType._2);
System.out.println(result); // 110 expected
number = new Number(NumberSystemType._16, "6df");
result = convertNumberToOtherNumberSystem(number, NumberSystemType._8);
System.out.println(result); // 3337 expected
number = new Number(NumberSystemType._16, "abcdefabcdef");
result = convertNumberToOtherNumberSystem(number, NumberSystemType._16);
System.out.println(result); // abcdefabcdef expected
}
public static Number convertNumberToOtherNumberSystem(Number number, NumberSystem expectedNumberSystem) {
//write your code here
String digit = number.getDigit();
boolean isSign = false;
if(digit.length() >0 && digit.charAt(0)=='-'){
digit = digit.substring(1);
isSign = true;
}
long deci = Long.parseLong(digit , number.getNumberSystem().getNumberSystemIntValue());
String arr[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
String result ="";
int base = expectedNumberSystem.getNumberSystemIntValue();
while (deci > 0){
int d = (int)(deci%base);
deci /= base;
result += arr[d];
}
result = new StringBuilder(result).reverse().toString();
if(isSign) result = "-"+result;
return new Number(NumberSystemType.valueOf("_"+base), result);
}
}