Я выполняю назначение, где мне нужно преобразовать целочисленное число в шестнадцатеричную строку с использованием рекурсии. Я должен сделать это, используя метод, который возвращает строковое значение. Я попытался превратить метод я использую на бумаге в коду, и она работает просто отлично:Преобразование int в шестнадцатеричную строку с использованием рекурсии
public class ItH {
private static String intToHex(int n) {
int temp = n % 16;
String digit = "";
if (temp < 10) digit += temp;
if (temp > 9) {
switch (temp) {
case 10: digit="A"; break;
case 11: digit="B"; break;
case 12: digit="C"; break;
case 13: digit="D"; break;
case 14: digit="E"; break;
case 15: digit="F"; break;
}
}
if (n > 0) return intToHex((n-temp)/16) + digit;
return "";
}
public static void main(String[] args) {
System.out.println(intToHex(1234));
System.out.println(intToHex(257));
System.out.println(intToHex(0));
}
}
Это прекрасно работает в течение первых двух примеров, используемых в основном методе, но я не могу получить его отобразить нуль. Есть ли способ заставить его отображать нуль, не изменяя слишком много? Я уже давно это переживаю, и я не могу понять, как это сделать, не добавляя по крайней мере один ноль перед каждым другим номером. Любая помощь будет оценена по достоинству.
Иногда у вас есть особые случаи, когда вы должны сделать что-то кроме «прямой» алгоритм. В этом случае я проверил бы окончательную строку перед ее возвратом пользователю. Если он пуст, установите его в одиночный «0». – markspace