我正在做一個賦值,我必須使用遞歸將整數轉換爲十六進制字符串。我必須使用返回字符串值的方法來執行此操作。我試圖把我使用的紙張爲代碼的方法和它工作得很好:使用遞歸將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));
}
}
它工作得很好,在main方法中使用的前兩個例子,但我不能得到它顯示零。有沒有辦法讓它顯示零而不會修改太多?我已經討論了一段時間了,我無法想出一個方法來做到這一點,而不會在每個其他數字之前至少添加一個零。 任何幫助,將不勝感激。
有時候,你有,你所要做的除了「直」算法一些特殊情況。在這種情況下,我會在返回給用戶之前檢查最後一個字符串。如果它是空的,將其設置爲單個「0」。 – markspace 2014-11-14 20:53:54