java中创建id的算法
经过几个小时的努力,我找不到解决问题的办法。 我想生成一个id,其生成方式如下:
我希望我的id由字符数组中的字符生成。对于以下示例,我将使用以下数组:
[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,1,2,3,4,5,6,7,8,9,0]
我希望生成我的id,以便我的前36个id是数组中的字符,然后我希望id是两个字符长,并考虑所有可能的情况。 这有点像某个地方的蛮力算法
如果你们有什么想法或问题,请告诉我。 我还是个编程高手
(注意,我希望id由返回字符串的方法生成)
尝试:
public String generate() {
char[] s = new char[charset.length];
if (firstIndex == charset.length) {
firstIndex = 0;
secondIndex++;
index++;
}
if (secondIndex == charset.length) {
secondIndex = 0;
thirdIndex++;
}
if(index>charset.length){
index=charset.length;
}
for (int i = 0; i < index; i++) {
s[i] += charset[secondIndex];
}
s[thirdIndex] = charset[firstIndex];
firstIndex++;
String result = "";
for (char c : s) {
result+=c;
}
return result;
}
# 1 楼答案
“如果顺序可以是
0-9
然后是a-z
,那么你可以使用Long.toString(inputNumber, Character.MAX_RADIX)
,其中Character.MAX_RADIX
是36。这正好给出了你想要的,除了先使用数字,然后是字母。”