java中创建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,其生成方式如下:

  • 我希望从字符数组中的字符生成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;
    }
公共字符串生成(){
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
。这正是您要查找的内容,只不过先使用数字,然后是字母。谢谢,这很有效!我只是想太多了。我从未想过这个方法也存在。