我需要將五位數的整數轉換爲長度爲5的字母數字字符串。在下面進行操作,但有時它不提供字母數字但是數字值。整數到字母數字字符串轉換
Long x = 12345L;
String code = Long.toHexString(x).toUpperCase();
我想要總是得到長度爲5的字母數字字符串。
我需要將五位數的整數轉換爲長度爲5的字母數字字符串。在下面進行操作,但有時它不提供字母數字但是數字值。整數到字母數字字符串轉換
Long x = 12345L;
String code = Long.toHexString(x).toUpperCase();
我想要總是得到長度爲5的字母數字字符串。
這並不奇怪。
例如,0x12345
是74565
,所以當74565
轉換成十六進制不包含任何的數字A
到F
。
鑑於99999
是0x1869F
,你有足夠的空間在轉換後的字符串,以適應一些「垃圾」數據,可以考慮將添加劑常數(0xA0000
也許這至少保證至少一個正輸入字母字符),或即使是與您原來的XOR異或的數字。
試試這個
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
對不起這是筆誤 – RE350
你是什麼意思的 「字母數字值」?你想將它轉換爲字符串? – Maroun
比如說: - 12345 - > A12BC – RE350