java中创建id的算法
经过几个小时的努力,我找不到解决问题的办法。 我想生成一个id,其生成方式如下:java中创建id的算法,java,Java,经过几个小时的努力,我找不到解决问题的办法。 我想生成一个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。对于以下示例,我将使用以下数组:
[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为两个字符长,并考虑所有可能的情况。 这有点像某个地方的蛮力算法
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;
}
公共字符串生成(){
char[]s=新字符[charset.length];
if(firstIndex==charset.length){
firstIndex=0;
secondIndex++;
索引++;
}
if(secondIndex==charset.length){
第二指数=0;
thirdIndex++;
}
if(索引>字符集长度){
索引=charset.length;
}
对于(int i=0;i
“如果顺序可以是0-9
然后是a-z
,那么您可以使用Long.toString(inputNumber,Character.MAX_radius)
,其中Character.MAX_radius
是36。这正好给出了您要查找的内容,只是先使用数字,然后使用字母。”“如果顺序可以是0-9
然后是a-z
,则可以使用Long.toString(inputNumber,Character.MAX_RADIX)
,其中Character.MAX_RADIX
为36。这正好给出了您要查找的内容,除了首先使用数字,然后是字母。”更新问题。只是要明确:您的数组包含36个字符,所以基数不能是38。是的,我的错。^。如果顺序可以是0-9
,然后是a-z
,那么您可以使用Long.toString(inputNumber,Character.MAX\u基数)
,其中字符.MAX_基数
为36
。这正是你要找的,除了先用数字,然后是字母。谢谢你,这很有效!我只是想得太多了。我从来没有听说过这个方法也存在。更新这个问题。只是想澄清一下:你的数组包含36个字符,所以你的基数不能是38。是的,我的错。^。如果顺序可以是0-9
,然后是a-z
,那么你可以使用Long.toString(inputNumber,Character.MAX\u基数)
,其中字符。最大基数为36
。这正是您要查找的内容,只不过先使用数字,然后是字母。谢谢,这很有效!我只是想太多了。我从未想过这个方法也存在。