2017-08-21 79 views
2

我想要生成一个算法,我希望按字典顺序得到下一个字符串。按照字典顺序以升序排列创建一个字符串列表

假设我要产生长度26的名单,然后它是

['a','b'....'z'] 

现在假设我要产生长度260的名单,然后它是

['a0','a1','a2'...'a9','b1'....'z0'....'z9'] 

这种类型的算法有最大极限。但我不想要这种类型的限制。它可能是10000或100万。

要求

算法应在以前作为参数由它生成的字符串传递这样一种方式工作。它应该按字典顺序产生下一个字符串。而且我不希望使用时间戳(1503314045645)

感谢

+0

由于递增字符串不是在现实生活中是有用的,也看到:https://stackoverflow.com/questions/43356549/auto-incrementing-alphanumeric-sequence/43358781#43358781 –

+1

什么是字符集?另外,在第一种情况下,y不是'['a','aa',...,'aaa ... aaa(26次)']'? (我相信'aa'在词法上比'b'小) – vish4071

回答

0

有关使用基地36格式化整数什么? 它看起来像这样在Java:

String next(String prev) { 
    if(prev==null) { 
    return "0"; 
    } 
    return Integer.toString(Integer.parseInt(prev, 36), 36); 
} 

其实它甚至更好,如果你使用存储值的简单整数,只是每次你需要的下一个值时增加并格式化使用基地36到整数的字符串:

Integer.toString(++value, 36); 

此方案中,数字输出的字母之前,所以你会得到下面的标记: A7,A8,A9,AA,AB,...... AX,AY,AZ ,b0,b1 ... zx,zy,zz,100,101

如果你首先要求信件或想要任何特定的订单或额外的字符,然后使用Matt Timmermans链接背后的解决方案。