2016-02-22 60 views
-1

我需要將五位數的整數轉換爲長度爲5的字母數字字符串。在下面進行操作,但有時它不提供字母數字但是數字值。整數到字母數字字符串轉換

Long x = 12345L; 
String code = Long.toHexString(x).toUpperCase(); 

我想要總是得到長度爲5的字母數字字符串。

+0

對不起這是筆誤 – RE350

+0

你是什麼意思的 「字母數字值」?你想將它轉換爲字符串? – Maroun

+0

比如說: - 12345 - > A12BC – RE350

回答

1

這並不奇怪。

例如,0x1234574565,所以當74565轉換成十六進制不包含任何的數字AF

鑑於999990x1869F,你有足夠的空間在轉換後的字符串,以適應一些「垃圾」數據,可以考慮將添加劑常數(0xA0000也許這至少保證至少一個正輸入字母字符),或即使是與您原來的XOR異或的數字。

1

試試這個

static String alphaNumric(int value) { 
    String s = "abcde" + Integer.toString(value, 36); 
    return s.substring(s.length() - 5); 
} 

int[] tests = { 12345, 1, 36, 36 * 36, 32767, 99999 }; 
    for (int i : tests) 
     System.out.println(i + " -> " + alphaNumric(i)); 

輸出

12345 -> de9ix 
1 -> bcde1 
36 -> cde10 
1296 -> de100 
32767 -> depa7 
99999 -> e255r